GBase 8c
其他
文章

GBase 8c执行计划关键字(一)

发表于2023-12-06 10:59:2238次浏览1个评论
  • Seq Scan

全表顺序扫描。

  • Index Scan

优化器决定使用两步的规划:最底层的规划节点访问一个索引,找出匹配索引条件的行的位置,然后上层规划节点真实地从表中抓取出那些行。独立地抓取数据行比顺序地读取它们的开销高很多,但是因为并非所有表的页面都被访问了,这么做实际上仍然比一次顺序扫描开销要少。使用两层规划的原因是,上层规划节点在读取索引标识出来的行位置之前,会先将它们按照物理位置排序,这样可以最小化独立抓取的开销。

如果在WHERE里面使用的好几个字段上都有索引,那么优化器可能会使用索引的AND或OR的组合。但是这么做要求访问两个索引,因此与只使用一个索引,而把另外一个条件只当作过滤器相比,这个方法未必是更优。

索引扫描可以分为以下几类,他们之间的差异在于索引的排序机制。

  • Bitmap Index Scan

使用位图索引抓取数据页。

  • Index Scan using index_name

使用简单索引搜索,该方式表的数据行是以索引顺序抓取的,这样就令读取它们的开销更大,但是这里的行少得可怜,因此对行位置的额外排序并不值得。最常见的就是看到这种规划类型只抓取一行,以及那些要求ORDER BY条件匹配索引顺序的查询。因为那时候没有多余的排序步骤是必要的以满足ORDER BY。

评论

登录后才可以发表评论
崔哥发表于 7个月前
辽东海北翦长鲸,风云万里清。方当销锋散马牛,旋师宴镐京。前歌后舞振军威,饮至解戎衣。判不徒行万里去,空道五原归。秉旄仗节定辽东,俘馘变夷风。清歌凯捷九都水,归宴洛阳宫。策功行赏不淹留,全军藉智谋。讵似南宫复道上,先封雍齿侯。