2016-08-23 2 views
0

ダイナミックな行形式のMyISAMテーブルを持っている場合は、数値列(int(11)、bigint(12)..)の動的列か静的列ですか?MySQLの動的行形式の数値列

たとえば、カラムタイプとしてint(11)を持っていても、このカラムの最大値が1234の場合、このカラムではint(4)か、 int(11)のようなスペース? MyISAMテーブルの動的行フォーマットについて

+1

'()'はストレージ要件に** NO **の影響を与えます。 'int'は何であろうと' int'であり、4バイトを占めます。 '()'はmysqlに何桁の数字を表示すべきかを伝えるためのもので、int(11)のように 'int(1)'は4バイトを占有します。 –

答えて

3

だけ指定を4つのバイトを取りますmysqlコマンドラインクライアントでデータを選択するときに表示される文字数。

+0

質問をする前にmysql Docを読みましたが、わかりませんでした。 「すべての列は動的」という意味はどうですか? intは4バイト未満を占めることができますか? – Imanez

+1

これは、行フォーマットそのものに関するものです。 intが固定長であるという事実はそれほど重要ではない。また、数値列が0の値を持つ場合、それはビットマップにマークされ、ディスクには保存されない ' –