概要¶GroongaのテーブルはIDとキーの対応を管理します。Groongaは4つの種類のテーブルを提供しています。以外のすべてのテーブルは高速なキー→ID検索とID→キー検索の両方をサポートしています。キーをサポートしていません。IDだけを管理します。ID検索もキー検索もサポートしていません。以下はGroongaにあるすべてのテーブルの特性表です。プレフィックスは省略しています。高速でとても小さいのですが、キーをサポートしていません。全文検索用の語彙表として使うことはできません。これは、語彙表はトークンをキーとして保存する必要があるからです。ログのようにキーのないレコードを管理するテーブルとして有用です。高速ですが、共通接頭辞検索や前方一致検索といった高度な検索機能をサポートしていません。タグ検索のように完全一致検索用のインデックスとして有用です。小さく、高度な検索機能もサポートしています。全文検索用の語彙表としても有用ですし、範囲検索用のインデックスとしても有用です。高速でキーの更新もサポートしていますが、サイズが大きいです。大量のレコードを保存する用途には向いていません。Groongaのデータベース内で使われています。テーブル名などオブジェクトの名前をオブジェクトのIDに変換する必要があります。Groongaのデータベースはオブジェクト名の変更もサポートする必要があります。サイズが大きいというデメリットは無視できます。レコードID¶レコードIDは自動的に割り当てられます。明示的に割り当てるレコードIDを指定することはできません。削除されたレコードのレコードIDは再利用される可能性があります。妥当なレコードIDの範囲は1から1073741823までです。(1も1073741823も妥当なIDです。永続テーブルと一時テーブル¶テーブルは永続テーブルまたは一時テーブルです。永続テーブルは名前がついていてデータベースに登録されています。永続テーブルの中のレコードはテーブルやデータベースを閉じた後でも消えません。コマンドで作成します。一時テーブルには名前がありません。一時テーブルのレコードはテーブルを閉じると削除されます。一時テーブルは検索結果やソート結果、グループ(ドリルダウン)結果などを格納するために使われています。