数値型にした場合、整数ではbyte、integer、longなどを選べますが、使い分けることによるメリットはありますか?
例えば、アクセスのファイル容量を極力小さくしたい場合、byte型で間に合うことが明らかなフィールド(都道府県コードなど)はbyte型にするべきでしょうか?
アクセス単体ではなく、ExcelVBAからADOで繋いで使うこともあります。
通報 ...
数値型にした場合、整数ではbyte、integer、longなどを選べますが、使い分けることによるメリットはありますか?
例えば、アクセスのファイル容量を極力小さくしたい場合、byte型で間に合うことが明らかなフィールド(都道府県コードなど)はbyte型にするべきでしょうか?
アクセス単体ではなく、ExcelVBAからADOで繋いで使うこともあります。
状況がわかりませんが、もしあれならば、Javaあたりで勉強していくと、いろんなサンプルを見ているうちに、勘所がわかるようになるのかもしれませんね。
極力小さくすれば、安全・安心なデータベースになるのかな?
テーブルのフィールドのデータ型の話ですよね。(VBAのデータ型だと別の話になりますので)
ACCDBやMDBはファイルサイズの上限(2GB)があるので、大量のデータを扱う可能性がある場合はフィールドサイズは必要最低限のものにした方がいいと思います。
処理速度的にも有利になるとは思いますが体感できる差はおそらくでないでしょう。
ちなみに、VBAの変数のデータ型の場合、LongとIntegerだと32bit環境以上(現在はすべてそうですが)だとLong型の方が処理速度は速いです。ただしこちらも体感できるような差はでないですが。
VBAでミリ秒以下の高精度で処理時間計測 - hatena chips
ありがとうございます。
アクセスのフィールドのデータ型の話です。
数値型で扱う場合に、byteで間に合う範囲しかデータが入らないなら、byteにしておいたほうが良いということになりますか?
byte型で数値を扱うなとも見たので、どちらがいいのかなと…。
byte型が正解だとしても、なんだかんだで取り敢えずintegerに1票。
Introduction to data types and field propertiesでググると公式サポートがヒットするかな。
Introduction to data types and field propertiesで調べてみましたが、数値型の説明に、
Tip: For best performance, always specify the smallest sufficient Field Size.
とありますねり
ということはやはり最小のbyteが理想ということで良いのでしょうか…
integerにしておいたほうが良い考える理由はなんですか?
保守が楽だからと考えました。お叱りを受けるかもしれませんが。
まず、データベースのフィールドのデータ型とVBAなどのブログラム言語の変数のデータ型は別ということは意識しましょう。
たぶん、ブログラム言語の変数のデータ型の話ではないかなと。これも時代によって変わってきてます。
データベースに関しては、必要とされる最小を選択しておけばいいと思います。ただし将来的に範囲を超える可能性があるなら、メンテナンス性を考えて余裕を持たせたサイズにすることもありだと思います。
ありがとうございます。
今後は範囲を超える可能性がない箇所はバイト型を積極的に使っていこうと思います。