2010-10-21 89 views
0

我有一個簡單的數據庫表,開銷爲170MB。優化InnoDB數據庫

這是我需要擔心的事嗎?當我運行優化時,它告訴我innodb不支持優化,因此重新創建表,但仍有170MB的開銷。

這是我可以輕鬆忽略的東西嗎?

乾杯!

+1

請提供非高架的大小把開銷關係。 – 2010-10-21 13:07:30

+0

嗨,這只是一個66mb的數據庫。 – Mikee 2010-10-21 18:04:29

+0

詳細說明,這是一個擁有160萬行的數據庫,但只有4列。主鍵,一個唯一的varchar(8)和兩個unsigned int(10)的 – Mikee 2010-10-21 18:06:08

回答

1

有周圍時,以優化大量的垃圾建議表。

如果按照'開銷'表示可用空間,請記住,InnoDB自然會使頁面佔用93%(15/16),以便爲以後的更新留出間隙。

當您優化表格時,它也不會以最佳方式重新創建它們。它重新創建表定義,然後將數據逐行復制到其中。主鍵索引不是通過這種方式分段的 - 但是二級鍵可能是(因爲它們可能會從第一天開始順序插入導致pagesplits /碎片)。

男爵寫在這個位置好的帖子: http://www.xaprb.com/blog/2010/02/07/how-often-should-you-use-optimize-table/

0

這是我可以輕易忽略的東西嗎?

這取決於。如果一切都適合內存,沒關係。

您使用哪個引擎? mysql> show create table table_name; InnoDB支持優化表格。

MySQL 5.1中InnoDB支持優化: http://dev.mysql.com/doc/refman/5.1/en/optimize-table.html

MySQL 5.0中InnoDB支持優化: http://dev.mysql.com/doc/refman/5.0/en/optimize-table.html

的MySQL 4.1 InnoDB支持優化: http://dev.mysql.com/doc/refman/4.1/en/optimize-table.html

+0

它並不真的支持OPTIMIZE。它重新創建一個臨時表並填充它,它幾乎具有相同的結果。 – 2010-10-28 15:27:13