Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

MySQL:Tại sao Đặt hàng theo ID chạy chậm hơn nhiều so với Đặt hàng theo các cột khác?

Từ tài liệu MySQL tại http://dev.mysql .com / doc / refman / 5.6 / vi / order-by -mize.html

Trong một số trường hợp, MySQL không thể sử dụng chỉ mục để giải quyết ORDER BY , mặc dù nó vẫn sử dụng các chỉ mục để tìm các hàng phù hợp với WHERE mệnh đề. Những trường hợp này bao gồm những điều sau:

. . .

Khóa được sử dụng để tìm nạp các hàng không giống với khóa được sử dụng trong ORDER BY :

`SELECT * FROM t1 WHERE key2=constant ORDER BY key1;`

Điều này có thể sẽ không hữu ích, nhưng điều gì sẽ xảy ra nếu bạn thêm AND ID > 0 đến WHERE mệnh đề? Điều này có khiến MySQL sử dụng khóa chính để sắp xếp không? Tôi cho là đáng để thử.

(Có vẻ kỳ lạ khi đặt hàng với ak là hiệu quả, vì ak thậm chí không có chỉ mục, nhưng điều đó có thể do ít giá trị hơn đối với ak?)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kết nối với mysql trên Amazon EC2 từ máy chủ từ xa

  2. Tại sao không sử dụng thời gian tạo bản ghi làm khóa chính?

  3. Tự động sao lưu cơ sở dữ liệu MySQL trên máy chủ Linux

  4. Bắt hàng trước và sau một truy vấn

  5. Laravel LeftJoin ở đâu