データベース担当者への簡単な質問です。それほど重要ではありませんが、興味があります。
よりも小さいもの (数値) はありますかtinyint
?
私は120の異なる値を保存しており、それらのほぼすべてが(0-9)
.
Atinyint
は私が見つけることができる最小のもので、最大 の値を保持します255
。(3桁)
DB:
MSSqlServer 2008 バージョン 10.00.1600 を使用しています
データベース担当者への簡単な質問です。それほど重要ではありませんが、興味があります。
よりも小さいもの (数値) はありますかtinyint
?
私は120の異なる値を保存しており、それらのほぼすべてが(0-9)
.
Atinyint
は私が見つけることができる最小のもので、最大 の値を保持します255
。(3桁)
MSSqlServer 2008 バージョン 10.00.1600 を使用しています
数値的tinyint
には可能な限り小さい可能性があります (使用しているデータベース エンジンによって異なります)。暗黙的な変換を使用して値をクエリすることもできchar(1)
ますが、実際には解決する必要のない問題を解決するには、不必要なオーバーヘッドになります。また、char(1)
0 ~ 255 の範囲の 1 バイト、8 ビットを引き続き消費します。これはマイクロ最適化であり、時間/労力の価値がないと考えています。
おそらく学術的な目的を求めていることは承知していますが、データベース ストレージに関してはtinyint
、ほとんどすべての状況に十分対応できるサイズです。スペースの消費が気になる場合は、従来の RDBMS 以外のオプションを検討する必要があると思います。
もちろん、複数の要素を 1 つのフィールドに手動でパックすることもできます。ほとんどすべてのコンピューティング システムはバイト (8 ビット) 指向であるため、通常、有効に利用できる最小の要素は 1 バイト (8 ビット) であり、たとえば 0 ~ 255 (または -128 ~ 127) を表すことができます。