PostgreSQL 11 新特性解读 : Indexs With Include Columns

  • 时间:
  • 浏览:29
  • 来源:uu快3和值_uu快3app_计划师

最后推荐和张文升一块儿编写的《PostgreSQL实战》,本书基于PostgreSQL 10 编写,共18章,重点介绍SQL高级结构、并行查询、分区表、物理克隆qq、逻辑克隆qq、备份恢复、高可用、性能优化、PostGIS等,带有小量实战用例!

链接:https://item.jd.com/12405774.html

创建索引时使用 INCLUDE(name),如下

Allow indexes to INCLUDE columns that are not part of the unique constraint but are available for index-only scans (Anastasia Lubennikova, Alexander Korotkov, Teodor Sigaev)

使用 INCLUDE 最好的措施 创建索引成功,如下:

以上创建索引报错,是其他 json 不支持 btree 索引。

或许有另一个人 问以下两种索引最好的措施 有啥区别? 这人 间题图片欢迎另一个人 留言讨论。

只查询name字段,也走了 Index Only Scan,如下

首先验证第其他:不支持Btree索引的字段支持使用INCLUDE最好的措施 索引,创建测试表。

加入 name 后走了 Index Scan using ,根据索引回表查询name字段。

This is also useful for including columns that dont have btree support

再次执行查询,走了 Index Only Scan

PostgreSQL 11 版本索引方面俩个多多 显著的新结构是创建索引时支持 INCLUDE COLUMNS ,语法如下

在字段a上创建索引,如下:

加入 name 字段后,不走 Index Only Scan,如下。

以上描述颇为费力,以下通过实例演示。

此结构主要用途和使用场景:

where条件中只带有a,查询a字段,以下SQL走了 Index Only Scan。

创建测试表并插入500万数据,如下:

在(a,user_info) 字段上创建 btree 索引,如下: