我見過很多不同的優化MySQL表的方案:從刪除後立即到每天一次,從不刪除。我經常設置一個cron作業,每天晚上運行以優化所有表格。什麼因素應該決定MySQL在MySQL中優化的頻率?
您使用什麼因素來確定表的優化頻率?
我見過很多不同的優化MySQL表的方案:從刪除後立即到每天一次,從不刪除。我經常設置一個cron作業,每天晚上運行以優化所有表格。什麼因素應該決定MySQL在MySQL中優化的頻率?
您使用什麼因素來確定表的優化頻率?
另外這個報價從MySQL themselves是很好的。
在大多數設置中,您根本不需要運行OPTIMIZE TABLE。即使您對可變長度行進行了大量更新,您也不一定需要每週或每月多次執行此操作,並且只能在特定的表上執行此操作。
根據表優化this article。
這會對錶進行碎片整理並將磁盤上的表的大小減小到105MB。它對查詢性能也有非常積極的影響,將選擇查詢響應時間從0.63秒減少到0.39秒。注: MySQL查詢緩存已關閉以演示。
下面是"MySQL administrators guide"
OPTIMIZE TABLE另一個報價做了表修復和重點分析,並進行排序索引樹,使鍵查詢更快。
只因爲這個引用永遠不會經常被告知。
過早的優化是所有罪惡
根你應該做的是措施之前,做了一個優化,然後測量後。然後在第二天做同樣的事情,如果業績增長很少,那麼你應該這樣做,然後看看你的表現是否會大幅提升。
對不起,但這不是以這種方式優化。這不會改變查詢的速度,但實際上是對數據庫進行碎片整理。 – 2009-06-20 20:26:03
與運行優化表相比,其他因素對查詢時間的貢獻可能更大。
如果性能問題(且只有),那麼您應該使用數據庫開始通過優化實際瓶頸來配置應用程序。
它有多慢。 ;) – 2009-06-20 20:21:50