📅  最后修改于: 2020-11-30 09:33:49             🧑  作者: Mango
在本节中,我们将更有效地理解PostgreSQL索引的工作,为什么我们需要使用索引,PostgreSQL索引的功能,不同类型的索引以及在PostgreSQL索引部分中执行的各种命令。
在PostgreSQL中,索引是用于增强从数据库中检索数据的特殊工具。
数据库索引与书籍索引平行。索引创建对所有值的访问,并显示在索引列上。
索引往往比没有索引时帮助数据库服务器更快地识别已定义的行。我们必须正确使用索引才能获得明显的结果。
PostgreSQL索引的一些基本功能如下:
在PostgreSQL索引中,我们可以执行以下命令:
让我们一一理解它们:
Commands | Description |
---|---|
Create Index | It is used to create a new index by defining the index name and table or column name on which the index is created. |
Drop Index | The Drop index command is used to delete the current index. |
List indexes | It is used to represent how to list all indexes in the PostgreSQL database. |
Unique Index | The Unique index command allows us to specify the unique indexes step by step. |
Index on Expression | It is used to specify an index based on expressions. |
Partial index | The partial index is used to display the use of partial indexes. |
Re-index | To rebuild one or more indices, we can use the REINDEX command. |
Multicolumn Indexes | It is used to display multicolumn indexes usage to enhance the queries with several conditions in the WHERE clause. |
所有索引类型都使用各种算法和存储结构来管理不同类型的命令。
在PostgreSQL中,索引可以分为多个部分,如下所示:
当表中包含索引列并将其与equal(=)运算符,Hash索引只能使用简单的equals comparison(=)运算符。
对于这种情况,开发人员将考虑哈希索引。
我们可以将CREATE INDEX命令与USING子句中的HASH索引一起使用,以创建一个哈希索引,如下图所示:
CREATE INDEX index_name
ON table_name
USING HASH (indexed_column);
PostgreSQL中最重要的使用索引是B树索引。
B树索引是一个平衡树,它保留排序的数据并允许以对数时间插入,搜索,删除和顺序访问。
当评估中包括索引列时,PostgreSQL开发人员将考虑使用B树索引,该评估使用以下运算符列表之一:
此外,对于模式匹配运算符LIKE和〜命令,查询开发人员可以使用B树索引。
并且如果模式是持久模式并且是模式开始时的锚点,如下面的示例所示:
column_name LIKE 'abb%'
column_name ~ '^abb'
column_name LKE 'abc%'
避免PostgreSQL索引的原因如下:
在PostgreSQL索引部分中,我们学习了以下主题: