目录
分享
Postgresql gin 索引高 CPU 使用率
postgresqljsonb
浏览量:73
编辑于:2023-04-12 23:00:46
我设计了一个带有 jsonb 列的表来存储用户列表,并在该列上设置了一个 gin 索引。
select * from table where userlist @> '"Username":"a01"'::josnb
我在表格中的数据类型,例如
`[{"Username":"a01"},{"Username":"a02"},{"Username":"a03"}....`]
当我进行后端单元测试时,查询速度很快。
但是当我编写一个函数来调用这个sp时,我发现它有非常高的CPU使用率问题(几乎100%)。
在我清空表并重新索引此数据库后,它下降到 80%,但它仍然很高。
我不知道如何减少这个问题。 如果您有任何想法,我期待您的建议,谢谢。
DECLARE @EndCNT;
SET @EndCNT = 10000;
WHILE @EndCNT > 0
BEGIN
SELECT public.query_cust('a01');
SET @EndCNT = @EndCNT - 1;
END
解决方案:
最后,我发现这是jsonb数据类型问题。
如果存储太长的 jsonb 数据, 当系统将数据加载到内存中时,它不可避免地会产生高 CPU 比率使用率。