在百万、千万级数据的一张 PostgreSQL 表中如何高效搜索一个指定的内容
資深大佬 : bandian 1
待搜索的字段为 json 类型,要做的是模糊匹配。
如果直接使用 like 匹配,性能上感觉应该会爆炸,不知道有没有什么原生的比较高效或者耗时短的查询方式。
大佬有話說 (3)
待搜索的字段为 json 类型,要做的是模糊匹配。
如果直接使用 like 匹配,性能上感觉应该会爆炸,不知道有没有什么原生的比较高效或者耗时短的查询方式。
非要存 pg,就这两个方向,其他的优化都是隔靴搔痒
2. 查询 json 中某个具体键的值,比如{‘age’:18},需要对 json->>’age’建索引
create index test_data1_btree on test using btree ((data1 ->> ‘age’));
select * from test where data1 ->> ‘age’ = 18;
3. like ‘”:2’ 比如'{“1”:2}’, 那这一列不应该存为 json,应该存为 text,然后加上 gin 索引