私はデータベーステーブルを持っています、それを国と呼んでみましょう。国はすべて名前、略称、大陸を持っています。世界のどの国でも最長の名前が54文字であるとしましょう。最大サイズを54に設定する必要があります。 64など何か?私の選択は問合せやストレージに何らかの形で影響しますか?データベースフィールドのサイズは重要ですか?
これはあらかじめ最適化されているように見えますが、自分自身がよく32,64,128などを選択していることがよく分かります。
おかげ
私はデータベーステーブルを持っています、それを国と呼んでみましょう。国はすべて名前、略称、大陸を持っています。世界のどの国でも最長の名前が54文字であるとしましょう。最大サイズを54に設定する必要があります。 64など何か?私の選択は問合せやストレージに何らかの形で影響しますか?データベースフィールドのサイズは重要ですか?
これはあらかじめ最適化されているように見えますが、自分自身がよく32,64,128などを選択していることがよく分かります。
おかげ
ソリッドDBMSは、何がベストであるかを知っている必要があります。 「54文字」が必要だが、データベースが64文字でより良い検索最適化を行うことができる場合、データフィールドは自動的に内部的に拡張されます。そうでなければ、1行に12文字を保存します。
私はあなたが心配する必要があるとは思わない、あなたが必要なものを書き留めてください。
回答 特定のRDBMSになります。
は、SQL Server(2000年以降)、varchar型は、それだけに保存されている実際の文字のためのスペースを使用しています(プラス小さなオーバーヘッド)を使用している場合は、アップ宣言されている最大サイズに変更します。
一般的な経験則として、問題が生じるまで最適化しないでください。
は、すべてのフィールドにVARCHAR(8000)またはVARCHAR(MAX)を使用することを強くお勧めします。ここでは一般的な意味が優先される必要があります。あなたはおそらくそれが必要だと思うので、予想外の長さのために余分なものを追加してください:-)
また、私はそれをいくつかの長さに保つことをお勧めしますそしてもう一度。例えば。私は、電話番号などの場合はVARCHAR(50)、郵便番号などの短い文字列の場合はVARCHAR(20)のように、文字列や電子メールなどのほとんどのフィールドにはVARCHAR(255)を使用します。 。
実用的である - あなたに適したスタイルを見つけます。過度に最適化するのではなく、反対にナットを使わないでください。
マーク
データタイプによって異なります。たとえば、ORACLEでは、可変長文字列の場合、varchar2データ型が適しています。文字列の最大長 - varchar2(maxsize)を定義するだけで済みます。これは、長さが最大10の任意の文字列が収まることを意味します。列の長さは、列に格納されている実際の文字列によって異なります。
を参照してください。あなたのケースではlink text
、どの国の名が54文字を超えて存在しないことを、あなたの絶対に確かならば、私はサイズ54
の可変サイズのデータ型を使用しますので、256の代わりに255を使用しての理論的根拠は何ですか? –
分かりません - おそらく私のパスカルの遺産は255文字に制限されていました:-)特別な理由はありません - 個人的な(悪い?)習慣 –
私は多くのvarcharsに255を使用します。私は電子メールアドレスRFCから来たと思ったが、間違っている可能性がある。 – karim79