Tôi không phải là chuyên gia trong lĩnh vực này, nhưng đây là một vài suy nghĩ:
Tốc độ truy vấn lâu hơn khi g.F2
thay đổi là do bộ nhớ đệm. MySQL sẽ lưu kết quả cho mỗi truy vấn (cho đến khi bộ đệm đầy), nhưng các truy vấn mới được chạy trên bộ đệm trống, vì vậy chúng mất nhiều thời gian hơn. Bạn không nên tối ưu hóa dựa trên điều này. (Xem Cách thực hiện đo lường chính xác
)
Tôi không thể biết từ thông tin của bạn liệu g
hoặc gp
bảng có độ cụ thể cao hơn (có vẻ như gp
?) trong where
nhưng bạn có thể muốn thử một truy vấn con để thay thế. (Xem Cách buộc truy vấn bên trong thực thi trước tiên
)
Về cấu hình, có thể bạn đang đạt đến một ngưỡng vật lý như vượt quá phân bổ ram (sử dụng hoán đổi là một thảm họa cho hiệu suất) mà explain
sẽ không rõ ràng hoặc liệu explain
chỉ sai trong trường hợp này.