PostgreSQL优化器之从一个关于扫描方式选择引发的思考

  1. 云栖社区>
  2. 博客>
  3. 正文

PostgreSQL优化器之从一个关于扫描方式选择引发的思考

剩勇追穷寇 2019-03-05 10:48:09 浏览3653
展开阅读全文

一个关于PostgreSQL使用组合索引的问题

近期阅读了《数据库查询优化器的艺术》这本书,对PG和Mysql优化器技术的轮廓有了一定了解。在阅读的过程中,因为知识背景和书本身的表述问题产生了许多困惑,这里就分享对其中一个困惑的探索过程作为看完书的总结。

在这本书的第十八章,关于PG和Mysql的优化器对于索引的优化能力对比中的一段让我困惑不已。如图一所示,单独使用组合索引的后半部分作为查询条件使用了顺序扫描,而再加上一个与索引无关的过滤条件,扫描方式竟然就变成了BitMap Index Scan。

考虑到该书针对的PG是9.2.3,这么个老版本,难道是这是两个人写的代码,一个优化了一个忘记了?但是,仔细观察这两个执行计划的代价发现了一丝不对劲,因为两者代价的差值是32.13-32.09=0.04。这个值太小了,而且是加了个过滤条件将预

网友评论

登录后评论
0/500
评论
剩勇追穷寇
+ 关注