Postgres 可能因代价估算的微小波动为同一查询选择截然不同的执行计划,导致堆块访问从 73 暴增至 3449。作者用 ExoBench 在合成 FEC 数据上复现了这一“计划抛硬币”现象,发现两索引方案不稳定。最终通过创建单个多列 GIN 索引(结合 btree_gin 与 pg_trgm)将交集下推到索引内部,消除规划器决策,使查询从 193.8 毫秒降至 0.76 毫秒。
完成下面两步后,将自动完成登录并继续当前操作。