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

Sử dụng chỉ mục, sử dụng tạm thời, sử dụng filesort - làm thế nào để khắc phục điều này?

Chà, tài liệu đưa ra lý do chính xác khi "Sử dụng tạm thời" sẽ xuất hiện:

Bảng tạm thời có thể được tạo trong các điều kiện như sau:

Nếu có mệnh đề ORDER BY và mệnh đề GROUP BY khác hoặc nếu ORDER BY hoặc GROUP BY chứa các cột từ các bảng khác với bảng đầu tiên trong hàng đợi nối, một bảng tạm thời sẽ được tạo.

DISTINCT kết hợp với ORDER BY có thể yêu cầu một bảng tạm thời.

Nếu bạn sử dụng tùy chọn SQL_SMALL_RESULT, MySQL sử dụng bảng tạm thời trong bộ nhớ, trừ khi truy vấn cũng chứa các phần tử (mô tả) yêu cầu lưu trữ trên đĩa.

Quét nhanh cho thấy bạn bị # 1.

blog này từ năm 2009 nói rằng "using filesort" có nghĩa là việc sắp xếp không thể được thực hiện với một chỉ mục. Vì bạn sắp xếp thứ tự theo một trường được tính toán, điều đó cũng sẽ đúng.

Vì vậy, đó là điều "sai".



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để biết bộ ký tự của cơ sở dữ liệu / bảng / cột MySQL là gì?

  2. MySQL CASE hoạt động như thế nào?

  3. xampp MySQL không khởi động

  4. MySql Transpose Row thành cột và cột thành hàng

  5. Truy vấn SQL để lấy giá trị cột tương ứng với giá trị MAX của cột khác?