postgresql で jsonb データ型のパフォーマンスをテストしています。各ドキュメントには、階層化されていない約 1500 個のキーがあります。ドキュメントがフラット化されます。テーブルとドキュメントは次のようになります。
create table ztable0
(
id serial primary key,
data jsonb
)
サンプル文書は次のとおりです。
{ "0": 301, "90": 23, "61": 4001, "11": 929} ...
ご覧のとおり、ドキュメントには階層が含まれておらず、すべての値が整数です。ただし、一部は将来テキストになります。
- 行: 86,000
- 列: 2
- ドキュメント内のキー: 1500+
キーの特定の値を検索したり、パフォーマンスによってグループを実行したりすると、パフォーマンスが著しく低下します。このクエリ:
select (data ->> '1')::integer, count(*) from ztable0
group by (data ->> '1')::integer
limit 100
完了するまでに約 2 秒かかりました。jsonb ドキュメントのパフォーマンスを向上させる方法はありますか。