解決MySQL 上緩慢的「SELECT COUNT(*)」查詢
您對change_event表的查詢,對超過特定特定_event_id的行進行計數,正在經歷嚴重的延誤。但為什麼?讓我們深入探討一下可能的原因。
揭秘InnoDB 的行為
MySQL 的InnoDB 引擎使用叢集主鍵,這表示主鍵與資料頁中的行資料一起存儲,而不是比單獨的索引頁。因此,範圍掃描(例如您的掃描)需要掃描資料頁中所有可能較寬的行。表的 xml_diff 欄位(一種 TEXT 資料類型)加劇了這一因素。
最佳化策略
為了加速查詢,有兩種方法值得考慮:
其他提示:
要進一步提高效能,請考慮將 change_event_id 欄位變更為 bigint unsigned。此步驟可防止負值,還可以簡化處理。
以上是為什麼我對change_event 表的「SELECT COUNT(*)」查詢如此慢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!