2010-03-12 94 views
5

在64位操作系統上運行的MySQL中,每列至少佔用64位?有一點會佔據整個字節?或整個字?在64位系統中,32位列佔用的空間比64位少?

+1

在內存?在磁盤上? – 2010-03-12 19:23:14

+0

@大衛,我想知道在這兩種情況下 – 2010-03-12 19:27:05

+0

答案這是一個家庭作業的問題嗎? – 2010-03-12 19:28:21

回答

3

這就是我認爲你正在尋找:

http://dev.mysql.com/doc/refman/5.5/en/storage-requirements.html

「的數據變化的存儲需求,根據存儲引擎被用於問題的表不同的存儲引擎使用不同的方法,用於記錄的原始數據和不同的數據類型。此外,一些引擎可以壓縮在給定行中的信息,或者在一列或整行的基礎上,使得所述存儲要求的計算對於給定的表或列結構[困難]「。

每列至少佔據64位?

你實際上意味着列或行?我認爲你的意思是排,但我不完全確定。我不能完全弄清楚爲什麼你需要知道列描述的大小,因爲AFAIK佔用O(1)空間...

有點會佔據整個字節?或整個字?

內存:不知道其實 - 我傾向於它佔據整個單詞,這樣有意義的比較可以作出,但我真的不知道。除非你在談論使用MEMORY存儲引擎在這種情況下...

在磁盤上:這確實取決於你的存儲引擎(如搖頭丸說的)和行的大小因極大地取決於你的存儲引擎字符集。例如,上面鏈接的文章解釋了MyISAM根據每行需要記錄少量比特的一些優化。

2

這將是在磁盤上32位。我不知道內存,但我確實知道32位數字會被提升到64位以進行比較(即使在32位系統上,這也會使64位系統有點提升)。