Gần đây tôi đã nhận được MySQL để treo trên các truy vấn cụ thể. Tôi có một bảng với hơn 500.000 hồ sơ. Dưới đây là các truy vấn được chạy:Kết quả phân loại MySQL mất một thời gian dài
SELECT * FROM
items
WHERE (itemlist_id = 115.626) ORDER BY tableOrder DESC LIMIT 1
Sau đây là giải thích:
| 1 | SIMPLE | mục | TẤT CẢ | NULL | NULL | NULL | NULL | 587113 | Sử dụng ở đâu; Sử dụng filesort |
Và đây là sự xâm nhập process_list:
| 252996 | root | localhost | itemdb | Truy vấn | 0 | Sắp xếp kết quả | CHỌN * TỪ
items
WHERE (itemlist_id = 115642) ORDER BY tableOrder DESC LIMIT 1 |
Bất kỳ ý tưởng nào có thể khiến cho truy vấn này mất 10 phút để xử lý? Khi tôi chạy nó bằng tay nó được thực hiện một cách nhanh chóng. (1 dòng trong set (0.86 giây))
Cảm ơn
Bạn có chắc đó là cách sắp xếp chậm và không tìm thấy bản ghi? Nếu bạn đã có một bảng quét 500k + hồ sơ trên một lĩnh vực mà không được lập chỉ mục nó có thể mất một lúc. Và sự "nhanh chóng" thủ công có thể là do MySQL (hoặc hệ điều hành) đã được lưu trữ trong dữ liệu từ một nỗ lực trước đó và chạy nhanh hơn nhiều. –