ITシステムのアーキテクチャ設計やデータモデリングにおいて、16ビット(65536)という境界をどう扱うべきか。リソースの最適化と将来の拡張リスクを天秤にかける際の、プロの判断基準を提示します。
16ビット型(SMALLINTやunsigned short等)を採用すべき条件
- リソースが極度に制約された環境:自動車のECU(電子制御ユニット)、スマート家電、ウェアラブル端末などの組み込みマイコンで、RAMが数KB〜数MB単位しかない場合。
- 値域が論理的に固定されているデータ:年号(西暦年)、都道府県コード(1〜47)、人間の年齢(0〜150程度)、月日など、将来にわたって65535を超える可能性が100%存在しない属性値。
- 毎秒数万件のパケットをやり取りするバイナリ通信:通信コストとパケットサイズの圧縮が最優先されるリアルタイム対戦ゲームやストリーミングの内部ヘッダ。
32ビット型・64ビット型を無条件で選択すべき条件
- ユーザーID、注文番号、取引ログの主キー:一度システムが稼働すると、後からデータベースの列型を変更するには長時間のサービス停止やテーブルの再構築が必要となります。「上限を超えるかもしれない」という懸念がわずかでも生じるものは、最初からBIGINT(64ビット)を選択するのが現代のベストプラクティスです。
- ファイルのバイトサイズや行数を扱う処理:ログファイルのパースプログラムやデータ分析パイプラインにおいて、65536行程度のデータ量は現代では「ごく小規模」に分類されます。制限に縛られない実装が必須です。