2011-10-27 7 views
2

必ずしも必要ではないフィールドの束を宣言すると、作成された各レコードに対してメモリが割り当てられるのですか、フィールドが初期化されるまでメモリを割り当てないのですか?データベースメモリはどのように割り当てられていますか?

例:idフィールドとchar(8)フィールドを持つテーブルを宣言すると、IDが生成されてテーブルに入力されるたびにその文字列に割り当てられたメモリが割り当てられます。値を割り当てましたか?

+0

"string"は有効なデータ型ではありません。そのフィールドの実際のデータ型は何ですか? –

答えて

2

数値フィールドやchar(n)など、タイプサイズが変更されていないフィールドにはセットメモリが割り当てられます。しかし、タイプがvarchar(n)(可変長)のフィールドの場合、例えば、フィールドに含まれるデータと同じ大きさになります。

例では、フィールドタイプがchar(8)の場合、8文字すべてにメモリが割り当てられます。 varchar(またはnvarchar)型のフィールドを作成すると、割り当てられた領域だけが割り当てられます。

mysql文字列型の詳細については、hereを読むことができます。

2

短い答え:毎回メモリ(またはハードスペース)が必要です。

フィールドがchar(8)の場合は、常に8バイト(データベースの見出しに先行する2バイト)を割り当てます。空のvarchar(34)の場合は、最小の領域は2です。

関連する問題