PostgreSQL教程

PostgreSQL 索引

在本节中,我们将更有效地理解 PostgreSQL索引的工作,为什么我们需要使用索引,PostgreSQL索引的功能,不同类型的索引以及在" PostgreSQL索引"部分下执行的各种命令。

什么是PostgreSQL索引?

在 PostgreSQL 中,索引是用于增强从数据库中检索数据的特殊工具。
数据库索引与书籍的索引平行。索引创建对所有值的访问,并显示在索引列上。
索引倾向于帮助数据库服务器识别已定义的行,这比没有索引时要快得多。我们必须正确使用 Indexes 以获得明显的结果。

PostgreSQL索引的功能

PostgreSQL索引如下:
通过 SELECT 和 WHERE使用索引来增强数据输出 如果我们使用 INSERT 和 UPDATE 命令,则会减慢数据输入速度。 在不影响任何数据的情况下,我们可以创建和删除 我们可以通过定义索引所在的索引名称和表或列名称,在 CREATE INDEX 命令的帮助下生成索引。已创建。 我们还可以创建一个唯一索引,该索引类似于 UNIQUE约束。

在PostgreSQL索引下执行的命令:

在PostgreSQL索引中,我们可以执行以下命令:
Create Index Drop Index List indexes Unique Index Index on Expression Partial index Re-index Multicolumn Indexes
让我们一一理解它们:
命令 说明
Create Index 通过定义索引名称和表或列名称来创建新索引。
Drop Index 下降索引命令用于删除当前索引。
List indexes 它用来表示如何列出PostgreSQL数据库中的所有索引。
Unique Index 唯一索引命令允许我们逐步指定唯一索引。
Index on Expression 它用于基于表达式指定索引。
Partial index 部分索引用于显示部分索引的使用。
Re-index 要重建一个或多个索引,我们可以使用REINDEX命令。
Multicolumn Indexes 它用于显示多列索引的使用情况,以增强WHERE子句中具有多个条件的查询。

PostgreSQL索引的类型

所有索引类型都使用各种算法和存储结构来管理不同类型的命令。
在PostgreSQL中,索引可分为以下几部分:
Hash Indexes B-tree Indexes GIN Indexes GiST Indexes SP-GiST indexes BRIN Indexes

Hash Indexes

当表中包含索引列并将其与等于(=)运算符进行比较时,哈希索引只能使用简单的等式比较(=)运算符。
对于这种情况,开发人员将考虑哈希索引。
我们可以使用 CREATE INDEX 命令,并在 USING子句中使用 HASH索引创建一个哈希索引,如下图所示:
CREATE INDEX index_name 
ON table_name 
USING HASH (indexed_column);

B-tree Indexes

在PostgreSQL中最重要的使用索引是 B树索引。
B树索引树索引是一种平衡树,它保留排序的数据,并允许对数时间内的插入,搜索,删除和顺序访问。。
当评估中包含索引列时,PostgreSQL开发人员将考虑使用 B树索引,该评估使用以下运算符列表之一:
< <= = >= BETWEEN IN IS NULL NOT NULL
此外,对于模式匹配运算符LIKE和〜命令,查询开发人员可以使用 B树索引。
如果模式是持久的并且是模式开始时的锚点,如下面的示例所示,
column_name LIKE 'abb%' 
column_name  ~ '^abb'
column_name LKE 'abc%' 
另外,对于 ILIKE和〜*,,如果模式以非字母字符开头,且不受大小写转换的影响,则PostgreSQL开发人员将故意使用B树索引。 如果我们已开始使用索引来优化PostgreSQL数据库,那么 B树是一个很好的选择。 如果我们使用 CREATE INDEX 命令而不描述任何索引类型,则PostgreSQL默认使用 B-tree 索引类型,因为它是最合适且最合适的索引类型常见查询。

GIN Indexes

下一种PostgreSQL索引类型是 GIN ,它代表广义倒排索引,通常表示为 GIN 。 如果我们在单个列中存储了多个值,例如范围类型,数组,jsonb和hstore,则GIN索引最为有用。

GiST Indexes

GiST索引最常用于全文搜索和几何数据类型的索引。 通用搜索树表示GiST索引,该索引提供了通用树结构的构建。

SP-GiST indexes

将空间分区的GiST标记为为 SP-GiST ,它可以保留分区的搜索树,从而可以开发各种不相似的非平衡数据结构。 包含自然聚类元素的数据也不是均衡树,例如多媒体,GIS,IP路由,电话路由和IP路由,在这种情况下,我们可以使用 SP-GiST

BRIN Indexes

与B树索引相比, BRIN 索引易于维护,因为它成本更低,更小,并且代表 Block Range Indexes 。 通常,BRIN索引用于包含线性排序顺序的列,例如销售订单 的生成日期列 在PostgreSQL索引中,BRIN允许在巨大的表上使用索引,而在没有并行分区的情况下,B-tree无法使用该索引。

使用PostgreSQL索引的缺点

我们有以下避免使用PostgreSQL索引的原因:
不应在包含大量NULL值的列上使用PostgreSQL索引。 PostgreSQL索引不能与小表一起使用。 我们不为经常部署的列创建索引。 我们不会为表创建索引,而要进行频繁的大批量更新或插入操作。

概述

在 PostgreSQL索引部分中,我们学习了以下主题:
PostgreSQL索引用于增强从数据库中检索数据。 我们已经了解PostgreSQL索引的功能。如创建索引,删除索引,列表索引,唯一索引,Expr索引ession,部分索引,重新索引,多列索引。 我们还学习了多种类型的PostgreSQL索引,包括HASH索引, B树索引,GIN索引,BRIN索引,GiST索引和SP-GiST索引。 我们还了解了使用 PostgreSQL索引的缺点。
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4