加速MySQL 中的行計數
儘管對「狀態」列建立了索引,但在大型MySQL 表中對行進行計數仍然很耗時,從而導致問題:有沒有技術可以加快此類查詢?雖然存在結果快取或維護單獨的總計表等技術,但可以直接最佳化這些計數嗎?
使用具有 200 萬行的範例表,基準測試顯示 MyISAM 的執行速度(0.9-1.1 秒)比 InnoDB(3.0)更快-3.2 秒)用於 GROUP BY 查詢。然而,這兩種方法都無法實現亞秒級性能。
儘管有這些結果,但探索加速直接查詢的替代方法(例如基於列的儲存引擎)可能需要權衡其他查詢類型。因此,透過觸發器維護匯總表成為建議的解決方案,以確保無論表大小如何都能進行即時計數檢索。
要實作此方法,請利用提供的樣板程式碼建立用於書籍插入、刪除和更新的觸發器。這些觸發器在總計表中維護每個狀態下的圖書數量,確保對任何狀態進行有效的計數檢索,從而無需昂貴的逐行掃描。
以上是如何加快大型 MySQL 表中的行計數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!