Tôi đã giải quyết vấn đề truy vấn chậm của mình. Để tóm tắt vấn đề, mất 22 giây để truy vấn 7000 hàng từ một hàng 20 triệu, bảng được lập chỉ mục 1,7 GB. Vấn đề là bộ nhớ cache quá nhỏ và truy vấn phải chuyển sang đĩa cho mọi truy vấn. Tôi nghĩ rằng việc truy cập đĩa sẽ nhanh hơn những gì tôi đang thấy vì tôi đang rời khỏi một cột được lập chỉ mục nên lượng dữ liệu đọc ra khỏi đĩa lẽ ra phải nhỏ. Nhưng tôi đoán rằng có rất nhiều chi phí khi truy cập bộ lưu trữ InnoDB trên đĩa.
Sau khi tôi đặt innodb_buffer_pool_size=1024M
trong tệp my.ini, truy vấn ban đầu sẽ mất nhiều thời gian, nhưng tất cả các truy vấn tiếp theo sẽ kết thúc trong vòng chưa đầy một giây.
Thật không may, việc lập hồ sơ không thực sự hữu ích.