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 比率使用率。
我设计了一个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 比率使用率。