Postgresql未使用索引问题

2019-12-11  本文已影响0人  ifree321

使用EXPLAIN命令查看慢查询时发现,有个int列在查询时未命中索引, 如图:
name = 0


2019-10-07 at 1.47 PM.png

而如果查询改为 name = 1:


2019-10-07 at 1.46 PM.png

这是因为
该表中name为0的行数大于70%(或某个具体数值),索引查询会比seq scan顺序扫描要慢,PostgreSQL优化器选择使用顺序扫描的方式。
数据分布较小(比如 1.7%),则用 bitmap index scan。数据更少的时候,用的是 index scan。

参考: http://mysql.taobao.org/monthly/2018/11/06/

上一篇 下一篇

猜你喜欢

热点阅读