MySQL 語句執行時間過長
嘗試在包含約100 萬筆記錄的大型資料庫上執行查詢時,遇到了執行時間延長的問題。具體來說,從「評級」表中獲取記錄的查詢特別慢:
select * from `ratings` order by id limit 499500, 500
儘管在「id」列上使用了索引,但問題仍然存在。然而,將表大小減少到 10,000 筆記錄會顯著加快查詢時間。
解釋:
使用「EXPLAIN」語句檢查查詢計畫後,發現顯示原始查詢使用全表掃描,導致執行效率低落。相反,當添加“where”子句時,會使用更有效率的範圍索引掃描,從而顯著提高效能。
select * from `ratings` where id>=499501 limit 500
注意事項:
使用使用適當的索引來過濾結果的「where」子句可以顯著提高查詢效能。
必須確定資料庫內沒有發生死鎖,死鎖也可能導致查詢執行緩慢。
以上是為什麼我的 MySQL 查詢即使有索引也這麼慢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!