postgresql - Postgres GIN 索引性能下降

标签 postgresql performance indexing rds

我在表 t1 上有一个 Postgres GIN 索引,在 JSONBa_col 上。

使用 gin (t1.a_col) 在 t1 上创建索引 i_1

这将约 2 秒的查询运行时间缩短为约 50 毫秒。

这个表有点活跃,每天有大约 1k 行新数据,没有更新/删除。

我看到的问题是这个索引的性能在几百次写入后急剧下降 - 查询性能回落到 ~2s。

运行 reindex 操作后问题得到解决。

REINDEX INDEX i_1

但这留下了一个问题,是什么导致指数运行如此糟糕?

最佳答案

在奔跑中

select * from pg_stat_all_tables 其中 relname = 't1'

我看到 n_mod_since_analyze 有 >2k 行并且 last_autoanalyze 已经过了几天。

通过将 autovacuum_analyze_scale_factor 的值从 0.05 降低到 0.002autoanalyze 开始频繁运行并开始以查看更一致的性能。

关于postgresql - Postgres GIN 索引性能下降,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54870880/

相关文章:

mysql - mysql查询中如何使用索引效率

postgresql - Postgres 无法打开 CSV 文件进行读取访问 : Permission denied

postgresql - postgres 中的延迟索引

postgresql - 我应该如何修复此 PostgreSQL 安装?

performance - 为什么jnz不算循环?

sql - MySql,任何人都可以建议如何改进我的查询/索引吗?

python - 附加 xml 文件中的列表列表

sql - 在 Postgresql 中排序以对 IP 地址进行排序?

c++ - 从派生指针调用虚函数而不支付 vtable 价格

asp.net - 用于检索大量二进制图像的 .ashx 处理程序的性能