2016-08-16 9 views
3

誰でもMySQLは例えば「TEXT」または「BLOB」MySQLのTEXTメモリ割り当て

などの分野のためのディスク領域を割り当てる方法を知っている私は「TEXT」欄に10キロバイトの文字列を挿入すると、何が起こりますか? 65kbのデータ全体が割り当てられているのですか?

+0

割り当てられたスペースに制限を混同しないでください。 'VARCHAR(255)'は最大255文字です。 'CHAR'のようにスペースを確保するタイプもありますが、これは例外です。 – tadman

答えて

4

これは、ドキュメントで説明されている:http://dev.mysql.com/doc/refman/5.7/en/storage-requirements.html

BLOB, TEXT    L + 2 bytes, where L < 2^16 
MEDIUMBLOB, MEDIUMTEXT L + 3 bytes, where L < 2^24 
LONGBLOB, LONGTEXT  L + 4 bytes, where L < 2^32 

可変長文字列型は、長さプレフィックスプラス データを使用して格納されています。長さ接頭辞は、データ型が に応じて1〜4バイト必要であり、接頭辞の値はL(バイト長は 文字列)です。たとえば、MEDIUMTEXT値の格納には、 バイトの長さを格納するために、値を格納するのにL バイトと3バイトを必要とします。

したがって、要するに、65kb全体が無駄にならない。