255文字の大きさに設定されたデータベースフィールドをよく目にしますが、なぜ伝統的/歴史的な理由なのですか?私はそれがページング/メモリ制限とパフォーマンスに関係していると思いますが、255と256の違いは常に私を混乱させました。
varchar(255)
これがインデクサーではなく容量または大きさであることを考えると、なぜ256は256よりも255が推奨されますか?バイトは何らかの目的(ターミネーターまたはnullなど)のために予約されていますか?
おそらくvarchar(0)はナンセンスです(容量がゼロです)?どちらの場合、2 ^ 8のスペースは確かに256である必要がありますか?
パフォーマンス上の利点を提供する他の大きさはありますか?たとえば、varchar(512)はvarchar(511)またはvarchar(510)よりもパフォーマンスが低いですか?
この値は、新旧のすべてのリレーションデータベースで同じですか?
免責事項 -私はDBAではなく開発者です。既知のビジネスロジックに適したフィールドサイズとフィールドタイプを使用しますが、この設定の歴史的な理由を知りません。それがまだ関連している場合はより多く)。
編集:
答えをありがとう、サイズを格納するためにバイトが使用されるといういくつかの合意があるようですが、これは私の心の中で決定的に問題を解決するものではありません。
メタデータ(文字列の長さ)が同じ連続したメモリ/ディスクに格納されている場合、それはある程度の意味があります。1バイトのメタデータと255バイトの文字列データは非常にうまく適合し、256の連続したストレージのバイトに適合します。これはおそらくきちんと整頓されています。
しかし...メタデータ(文字列の長さ)が実際の文字列データとは別に(おそらくマスターテーブルに)格納される場合、1バイトの整数のみを格納する方が簡単だからといって、文字列のデータの長さを1バイトに制限します。メタデータの部分は少し変わっているようです。
どちらの場合も、おそらくDBの実装に依存するのは微妙なことのようです。255を使用する習慣はかなり広まっているように思われるので、最初にどこかで誰かがその良い事例について議論したに違いありません。プログラマーは理由なしに新しい慣行を採用することはありません。