質問

を使用する方が効率的ですか? varchar フィールドのサイズは 2 の累乗になります。別の番号ですか?SQL Server のデフォルトは 50 なので、いいえと考えています。

ただし、フィールドのサイズを 2 のべき乗として指定する方が効率的であると聞いたことがあります (ただし、確認したことはありません)。これは、フィールドが偶数バイトに相当し、コンピューターはビットとバイトで処理するためです。

したがって、フィールドは次のように宣言されますか? varchar(32) または varchar(64) ~に対して実際の利益がある varchar(50)?

役に立ちましたか?

解決

いいえ。

他の用途では、サイズ 2 のべき乗の構造体を使用する利点がいくつかあります。その主な理由は、サイズが 2 のべき乗の別の構造体内にこれらの (2 のべき乗) 個の適切な数を収めることができるためです。ただし、これは DB フィールドサイズには当てはまりません。

VARCHAR に関連する唯一の 2 のべき乗のサイズ設定は、varchar (または一部の SQL 言語では TEXT/BLOB) の正確な型に関するものです。256 未満の場合は、1 バイトを使用して長さを示すことができます。65536 (64KB) 未満の場合は 2 バイトで十分で、3 バイトは 16777216 (16MB) まで機能し、4 バイトは 4294967296 (4GB) まで機能します。

また、次のように主張することもできます。 VARCHAR(50) と同じくらい高価です VARCHAR(255), どちらも n+1 バイトのストレージを必要とするためです。

もちろん、それは Unicode について考える前の話です...

他のヒント

私はいつも我々はオタクだから、人々はvarchar型のフィールドのための2つの力を選ぶと思ったし、それは我々が何をすべきかです。少なくとも、それは私がいつもやったのです。

あなたが特定の最大長を使用してから表示されます唯一の有形利益はVARCHARのために必要な記憶領域です。 255を超える最大長さは、各列の値の長さを格納するために余分なバイトを必要とする(256 ^ 2以上の長さのために余分に2バイトなど)であろう。

一般的なSQLのために?具体的な実施のために番号、多分ます。

何より効率的であること(SQLがちょうど仕様です)仕様によって決定されていないが、どのようにそれは、特定のDBMSに実装されています。

これは、特定のデータベースの実装に依存しますが、私はそれが期待していません。それがパフォーマンスに影響を与えるべきではありませんので、それは、一般的に、文字数のいずれかの計算を実行していないです - 空間のみ

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top