2012-04-29 18 views
0

たとえば、varcharデータ型では、ユーザー名の最大文字数を25にすることができます。これは、最適な列がvarchar(25)であることを意味しますか?データ型の適切なサイズを選択しますか?


EDIT:それはまた、文字列の長さ=文字列のサイズを意味するのでしょうか?

+0

ユニコードユーザ名をサポートしたい場合は、 'nvarchar' ... –

答えて

1

MySQLのVARCHARカラムのサイズは実際にはそれほど重要ではありません!ほとんどの(すべての)ストレージエンジンでは、列のサイズがVARCHAR(255)になるにつれて、各行に必要なストレージの量はであり、は増加しません。 VARCHAR(256)以上を使用すると、行ごとに1つの余分なバイトが使用されますが、まだそれほど多くはありません。 (その時点では、とにかくTEXTカラムを使用することを考えてみてください。)

このように、あなたのカラムのサイズを十分に考慮してください。技術的でない制限(ユーザー名の25文字の制限など)をデータベースにハードコードしないようにしてください。後で考え直す場合、検証コードを変更するよりも潜在的に非常に大きなテーブルを変更する方が簡単です。例えば、ユーザー名の場合、将来の拡張を可能にするために、カラムサイズをVARCHAR(64)のような中程度のばかげたものに設定するだけです。同じ "データタイプ"(ユーザー名など)がデータベースの他の場所に表示されている場合は、一貫して同じ大きさの同じサイズを使用するようにしてください。

-1

またはいずれかの方法でchar(25)。しかし、varchar(25)はうまく聞こえます。

+0

私はあなたにdownvoteをしませんでしたが、正確に25文字ではない場合、charには余分なスペースを追加しませんか? – Michelle

+0

はい、しかしvarcharを使うと、すべてのエントリにバイトが追加されるので、そのトレードオフ – ControlAltDel

+0

'CHAR()'を使うと、ディスクに余分なスペースを使うだけでなく、入力に*リテラル*スペース文字を追加することができます。 – duskwuff

関連する問題