データベースメモリはどのように割り当てられますか?

常に必要ではないフィールドの集合を宣言すると、作成された各レコードに対してメモリが割り当てられるのですか、フィールドが初期化されるまでメモリを割り当てられませんか?

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

2
"string"は有効なデータ型ではありません。そのフィールドの実際のデータ型は何ですか?
追加された 著者 Joe Stefanelli,

2 答え

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

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

mysql文字列型の詳細については、こちらをご覧ください。

2
追加された

短い答え:それは毎回メモリ(またはハードスペース)がかかります。

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

2
追加された