我正在 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 文档的性能。