Postgresql未使用索引问题

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


2726978-4e3b703191299878.png
2019-10-07 at 1.47 PM.png

而如果查询改为 name = 1:


2726978-267539828627e05c.png
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/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值