コンテンツにスキップ

9.2 テーブル構造とスキーマ

LOOKUPテーブルの構造とスキーマ設計を説明します。

LOOKUPテーブルの設計

LOOKUPテーブルは、コードテーブルとマスターデータを保存するタイプです。 PRIMARY KEYで各行を識別し、PRIMARY KEYまたは一般条件式によるUPDATE/DELETEをサポートし、ディスクに永続保存されます。

永続保存とメモリ検索の構造

LOOKUPテーブルは、永続性とメモリ検索性能を提供する2層構造です。

  1. 変更された行は、再起動後も保持できるよう永続ストレージに記録されます。
  2. サーバー起動時に永続ストレージのLOOKUP行をすべて読み取り、各列の値を含むメモリ上の行として復元します。
  3. 各メモリ行は、必須のPRIMARY KEYの赤黒木インデックスに登録されます。
  4. SQLクエリは、復元されたメモリ行とインデックスを使用します。

概念上、1行は次のようなキーと値の項目として捉えられます。

PRIMARY KEY                       その他の列の値
sensor_id = 'TEMP-01'  ───────►  { site, unit, status, ... }
          key                              value

このためLOOKUPは、SQLテーブルのインターフェース、一般条件検索、JOIN、セカンダリインデックスに対応しながら、 特にPRIMARY KEY検索に適しています。 永続ストレージがあっても、検索時に必要な行だけをディスクから読み出す構造ではありません。 全行と作成した赤黒木セカンダリインデックスがメモリを使用するため、スキーマ設計では、 行数だけでなく可変長列、JSON値、セカンダリインデックスのサイズも考慮してください。

最終更新日