2012-03-29 34 views
1

任何人都知道MySql如何爲「text」和「blob」分配內存,以防我插入比列的最大大小更小的數據?MySql內存分配

例如,當我將50K字符串插入「文本」列時會發生什麼?是否分配了整個65K列?

+1

在text'柱的'情況下,分配的sizeof'(文本)'+ 2個字節來存儲該文本的大小是什麼。 – 2012-03-29 13:05:07

回答

1

文本數據類型有四種不同的尺寸 * TINYTEXT * TEXT * MEDIUMTEXT * LONGTEXT

在它們可以存儲值的最大長度不同。所有這些都是可變長度類型,因此單個值需要的存儲量等於該值的長度(以字符爲單位),再加上1到4個字節來記錄該值的長度。尾部空格不會被刪除或添加以進行存儲或檢索。

對於可變長度(VARCHAR,TEXT)列,MySQL僅爲每個存儲值分配所需的空間量。

即對於文本數據類型Number of characters + 2 bytes並具有最大長度高達65,535個字符