PostgreSQL教程

PostgreSQL 删除索引

在本节中,我们将了解 PostgreSQL删除索引和示例的工作原理 Drop index命令。

为什么我们使用PostgreSQL Drop index命令?

在 PostgreSQL ,拖放索引命令用于删除现有索引。而且,如果我们删除索引,它将提高性能。

PostgreSQL删除索引命令的语法

删除索引命令如下:
DROP INDEX  [ CONCURRENTLY]
[ if EXISTS ]  index_name 
[ CASCADE | RESTRICT ];
在上面的语法中,我们使用了以下参数,如下表所示:
参数 说明
index_name 它用于定义要删除的索引的名称。并且应在 DROP INDEX 命令之后编写。
if EXISTS 如果我们尝试删除不存在索引,则会在输出中引发错误。因此,我们可以使用 IF EXISTS 选项解决此错误。
CASCADE CASCADE 选项在索引中使用,该索引包含相关对象。 CASCADE选项将自动删除这些对象以及所有依赖于这些对象的对象。
RESTRICT RESTRICT 选项通知PostgreSQL如果有任何对象依赖该索引,则删除该索引。默认情况下, DROP INDEX 命令使用 RESTRICT 选项。

当前

如果我们实现 DROP INDEX 命令,PostgreSQL将获得表的排他锁并阻止其他访问,直到索引删除完成。
在这种情况下,我们可以使用 CONCURRENTLY 选项强行允许语句等待直到矛盾的交易结束再删除索引。
同时下降索引包含一些边界:
同时使用 DROP INDEX 时,不支持 CASCADE 选项。 如果我们同时使用 DROP INDEX,则不支持在事务块中执行。
注意: 我们可以使用逗号(,)分隔索引,并同时删除多个索引,如下图所示:
DROP INDEX index_name, index_name2,... ;

PostgreSQL DROP INDEX的示例

让我们看一个示例来了解 PostgreSQL DROP Index 命令的工作。
为此,我们使用在PostgreSQL教程前面的部分中创建的 Employee 表。
和 Employee表 包含各种列,例如 emp_id,employee_name,电话和地址。
一旦我们执行以下 SELECT 命令,我们可以看到 Employee 中存在的数据表,如以下屏幕截图所示:
SELECT * FROM Employee;
输出
执行上述命令后,我们将获得以下输出:
PostgreSQL Drop Index
现在,我们为 Employee 表的 Address 列创建索引,如以下命令:
CREATE INDEX idex_emp_address 
ON Employee (address);
输出
执行上述命令后,我们将获得以下消息窗口,其中显示 Idex_emp_address 已成功创建。
PostgreSQL删除索引
注意: 有时,命令优化器不使用索引。
在下面的示例中,我们可以使用以下命令来标识其地址为波士顿的员工:
SELECT * FROM Employee
WHERE address = 'Boston';
输出
执行上述命令时,我们将获得以下输出,我们在其中成功识别出地址为波士顿的那些雇员。
PostgreSQL删除索引
在上述命令中,我们未使用 idex_emp_address 索引,该索引在PostgreSQL索引教程的PostgreSQL创建索引的前面部分中指定,如以下 EXPLAIN 命令所示:
EXPLAIN SELECT *
FROM Employee
WHERE address = 'Boston';
输出
执行上述命令后,我们将获得以下输出,其中显示了 Employee 的查询计划表。
PostgreSQL删除索引
之所以会这样,是因为查询开发人员认为它
因此,在这种情况下, idex_emp_address 不利于使用。这就是为什么我们在以下命令的帮助下删除:
DROP INDEX idex_emp_address;
输出
在执行上述命令时,我们将收到以下消息,该消息显示 idex_emp_address 索引已为 。
PostgreSQL Drop Index

概述

在 PostgreSQL丢弃索引部分中,我们学习了以下主题:
我们了解 PostgreSQL删除索引命令,该命令用于删除特定表的索引。
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4