Postgresql gin 索引高 cpu 使用率

Postgresql gin index high cpu usage ratio

我设计了一个table with jsonb 列来存储用户列表,我在该列上设置了一个 gin 索引。

select * from table where userlist @> '"Username":"a01"'::josnb

我的数据类型 table 喜欢

`[{"Username":"a01"},{"Username":"a02"},{"Username":"a03"}....`]

我做后端单元测试的时候,查询速度很快

但是当我写一个调用这个sp的函数时,我发现它有很高的cpu使用率问题(几乎100%)。

在我清理 table 并重新索引此数据库后,它下降到 80%,但它仍然很高。

我不知道如何减少这个问题。 如果你有什么想法,我期待你的建议,谢谢。

DECLARE @EndCNT;
SET @EndCNT = 10000;

WHILE @EndCNT > 0
BEGIN

SELECT public.query_cust('a01');
SET @EndCNT = @EndCNT - 1;
END 

最后发现是jsonb数据类型的问题

如果你存储的jsonb数据太长, 当系统将数据加载到内存中时,不可避免地会导致高 CPU 比率使用率。