2009-02-19 43 views

回答

134

看來,開銷是數據庫用來運行一些查詢的臨時磁盤空間,所以你應該只擔心,如果這變得非常高。

您可以比較「優化表」你的硬盤驅動器的碎片整理。

我引述:

每個數據庫將隨着時間的推移, 需要某種形式的維護 的保持在一個最佳性能水平 。清除已刪除的行, 重新排序,壓縮,管理 索引路徑,碎片整理等是 在mysql 和其他數據庫中稱爲OPTIMIZATION。例如,IBM DB2/400將其稱爲 重組物理文件成員。

這有點像在 你的車換機油或得到一個熱身。你可能認爲你真的不需要 ,但是通過 這樣做可以讓你的汽車運行得更好, 你可以獲得更好的汽油里程等等。獲得大量里程的汽車 需要更頻繁地調整 。 得到大量使用的數據庫需要相同的。如果 你正在做大量的更新和/或 DELETE操作的,特別是如果你的 表中有可變長度 列(VARCHAR,文本等),你需要 保持「呃調整了。

+1

@Jasper在優化期間表格是否完全鎖定(無法讀取/寫入)? – Pacerier 2012-07-06 00:54:17

+4

該報價來自哪裏?我在Google中發現了很多結果。 – 2012-09-04 20:38:24

75

如果你正在談論phpMyAdmin電話overhead,那麼它相對於同一數據文件的理想尺寸的表數據文件的實際大小的東西(好像當剛剛從備份中恢復)。

由於性能原因,MySQL它刪除或更新行後不壓縮數據文件。

overhead是壞的表掃描,我。即當您的查詢需要遍歷所有表值時,它需要查看更多的空白空間。

您可能會通過運行OPTIMIZE TABLE,將壓縮你的表和索引擺脫overhead的。

7

開銷是Data_free的一張表,即已分配但未使用的字節數。 我們可以通過SQL命令找到它SHOW TABLE STATUS。它是您的表格分配大小的可用空間。

1

優化表可能會非常成問題。例如,如果表在網站上使用嚴重。

http://dev.mysql.com/doc/refman/5.1/en/optimize-table.html

刪除一個MyISAM或存檔表的很大一部分,或作出許多變化與可變長度行(即具有VARCHAR,BLOB或TEXT表一個MyISAM或ARCHIVE表之後列)。刪除的行保留在鏈接列表中,隨後的INSERT操作將重新使用舊的行位置。 <

我相信我已經證實了這種行爲。它確實會非常有用。

相關問題