指数改进postgresql 13索引的一个核心特性数据库管理系统(DBMS)。PostgreSQL索引有非常悠久的历史,有一组丰富的索引功能。PostgreSQL b -树、散列、杜松子酒、要点和布林索引。因为发展指标仍在继续,PostgreSQL 13提供了一些增强功能。

我们可以把整体的改进分为两类:

  1. 改变对用户是透明的。不会有任何明显的变化,但他们会得到好处后自动升级,可能经过重建索引。不需要应用程序改变。
  2. 第二组的改进要求用户显式地使用新的特性。

介绍了两种类型的改进在PostgreSQL版本13。有时很难提取信息<一个href="https://www.postgresql.org/docs/13/release-13.html">释放笔记和理解为最终用户,甚至说服一个终端用户,所以这个博客包含示例的改进在PostgreSQL 13。

1。重复数据删除的b -树索引(<一个href="https://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=0d861bbb702f8aa05c2a4e3f1650e7e8df8c8c27">1]

非唯一/主要的b -树索引通常包含许多重复的值。副本的存储起着至关重要的作用,尤其是在b -树,它允许聚合操作数或通过使用这些索引。然而,一个聪明的包装方式可以消除存储实际的重复值仅维护参考。

重复数据删除技术消除了冗余的过程从树上/重复的值。这种“重复数据删除”过程减少了索引的存储要求,每个键只存储一次,节省空间。

(N投票选出:这只是一个例子显示减少的大小,不是一个基准。你可能会得到不同的数字。]

介绍了一个新的指数参数叫做deduplicate_items可以在创建索引时指定。该参数用于启用/禁用重复数据删除。“上”在默认情况下,这意味着重复数据删除的好处可以没有明确做出任何改变。

注意:如果你升级从旧版本使用PostgreSQLpg_upgrade,所有索引需要重建索引结果重复数据删除的好处,不管你是哪个版本升级。

2。允许要点(<一个href="https://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=c085e1c1cb4e29637552f5d250d45ad0cb83e5cf">2.1]和SP-GiST [<一个href="https://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=c085e1c1cb4e29637552f5d250d45ad0cb83e5cf">2.2]索引查找框/点距离

深入发展的要点指数是一个模板索引在任何类型的数据,支持任何查找数据。默认情况下,它支持一个宽范围的运营商。在PostgreSQL 13中,t他的新补丁增加了对失踪”的支持< - >(框,点)”运营商要点box_ops排序操作符。

让我们考虑一个表的例子和一个盒子,一个点,一个圆。

插入数据表:

分析表:

创建一个要点索引框字段:

现在我们有一个查询来检查所有的盒子中包含另一个框区域但点按距离排序。

请注意命令操作符使用在上面查询“b < - >点(5.2,5.91);”。这是不可能的在前面的PostgreSQL版本。

3所示。允许<一个href="https://www.postgresql.org/docs/13/gin.html">杜松子酒索引来更有效地处理不限制<一个href="https://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=4b754d6c16e16cc1a1adf12ab0f48603069a0efd">3]

这是一个性能增强使用杜松子酒索引的查询。现在的杜松子酒指数将在处理更高效的否定的限制。这种改善避免杜松子酒的完整扫描索引。

4所示。索引操作符类参数(<一个href="https://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=911e70207703799605f5a0e8aad9f06cff067c63">4]

PostgreSQL有多种索引访问方法,如(1)主旨,(2)杜松子酒,(3)SP-GiST,(4)布林。在创建索引时已经有一个选项来指定操作符类。操作符类包含用于该指数的比较函数。通常当我们创建一个索引不指定操作符类,默认使用操作符类,大部分时间它就足够了。但在某些情况下需要有多个有意义的行为,因此我们需要指定操作符类。

这些opclasses定义键的表示和操作。随着它还定义了支持的搜索策略。添加一些用户端决定opclass opclass_parameter介绍。新语法创建索引添加到指定操作符类选项。

5。依据签名长度

允许创建索引指定要点签名长度和最大数量的整数范围。现在用户可以指定依据指标参数。

6。防止使用非默认排序的索引<一个href="https://www.postgresql.org/docs/13/sql-altertable.html">添加作为一个表的独特或主键约束(<一个href="https://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=fbbf68094c5ff3d513969d072126c92932e484da">5]

现在必须匹配索引和列排序的索引的独特性与列的独特性。

* (目前这是在默认情况下,但最终决定将GA]

注意:所有的信息是基于PostgreSQL 13β。

订阅
通知的
客人

0评论
内联反馈
查看所有评论