2010-09-25 80 views
1

我有一個表,包含列,smallint,整數和兩個浮點數。每行的預期內存爲14bytes(2 + 4 + 2 * 4)。 我的表中有大約700,000行。我沒有設置主鍵和索引。 雖然MyIsam類型需要大約10MB(每行平均15b),但InnoDB類型需要超過30Mb(平均44b)。 我在這裏錯過了什麼? InnoDB對每一行都有很多開銷,或者表的狀態編號是不可信的。 我需要存儲將運行到GB的數據,因此需要通過稱重不同的參數來決定存儲類型。InnoDB行大小與MyIsam相比較大

回答

0

與MyISAM相比,InnoDB表佔用更多空間。 InnoDB提供的功能(崩潰安全性,事務處理和外鍵)是否有利於InnoDB的存儲使用和功能之間的權衡是否需要決定。自己從MyISAM切換到InnoDB,我不會回去。

值得注意的是,如果你打算繼續使用InnoDB,你一定要定義一個主鍵(最好是一個短鍵)。這是由於InnoDB的存儲方式和其他指標。請參閱this page

+0

雅,這回答我的quesion與此http://stackoverflow.com/questions/2914492/mysql-innodb-table-size-question – Grungean 2010-09-26 10:56:11