mysql如何解除索引_MySQL 索引删除

本教程介绍了如何使用MySQL DROP INDEX语句删除表中的索引,包括基本语法、算法选项(INPLACE和COPY)以及锁定选项(DEFAULT、NONE、SHARED和EXCLUSIVE)。通过示例展示了删除普通索引和主键索引的方法。
摘要由CSDN通过智能技术生成

MySQL 索引删除

简介:在本教程中,您将学习如何使用MySQL DROP INDEX语句删除表的现有索引。

MySQL DROP INDEX语法

要从表中删除现有索引,请使用以下DROP INDEX语句:

DROP INDEX index_name ON table_name

[algorithm_option | lock_option];

在这个语法中:

首先,指定要在DROP INDEX关键字后删除的索引的名称。

其次,指定索引所属的表的名称。

算法

algorithm_option允许您指定用于索引中删除特定的算法。以下显示了algorithm_option子句的语法:

ALGORITHM [=] {DEFAULT|INPLACE|COPY}

对于索引删除,支持以下算法:

COPY:表逐行复制到新表,DROP INDEX然后在原始表的副本上执行。并发数据操作语句例如

INPLACE:表被重建到位而不是复制到新表。MySQL在索引删除操作的准备和执行阶段期间在表上发出独占元数据锁。算法允许并发数据操作语句。

请注意,ALGORITHM子句是可选项。如果你跳过它,MySQL会使用INPLACE。如果INPLACE不支持,MySQL使用COPY。

使用DEFAULT与省略ALGORITHM子句具有相同的效果。

lock_option控制并发的电平读出并同时索引被移除的表写操作。

以下显示了以下语法lock_option:

LOCK [=] {DEFAULT|NONE|SHARED|EXCLUSIVE}

支持以下锁定模式:

DEFAULT:这允许您具有给定算法的最大并发级别。首先,如果支持,它允许并发读取和写入。如果不支持,如果支持则允许并发读取。如果不是,请强制执行独占访问。

NONE:如果NONE支持,则可以进行并发读写。否则,MySQL会发出错误。

SHARED:如果SHARED支持,则可以进行并发读取,但不能写入。如果不支持并发读取,MySQL会发出错误。

EXCLUSIVE:这会强制执行独占访问。

MySQL DROP INDEX示例

让我们为演示创建一个新表:

CREATE TABLE leads(

lead_id INT AUTO_INCREMENT,

first_name VARCHAR(100) NOT NULL,

last_name VARCHAR(100) NOT NULL,

email VARCHAR(255) NOT NULL,

information_source VARCHAR(255),

INDEX name(first_name,last_name),

UNIQUE email(email),

PRIMARY KEY(lead_id)

);

以下语句从leads表中删除name索引:

DROP INDEX name ON leads;

以下语句使用特定算法并锁定leads表中的email索引:

DROP INDEX email ON leads

ALGORITHM = INPLACE

LOCK = DEFAULT;

MySQL DROP PRIMARY KEY索引

要删除PRIMARY主键的索引,请使用以下语句:

DROP INDEX `PRIMARY` ON table_name;

以下语句创建一个以t主键命名的新表:

CREATE TABLE t(

pk INT PRIMARY KEY,

c VARCHAR(10)

);

要删除主键索引,请使用以下语句:

DROP INDEX `PRIMARY` ON t;

在本教程中,您学习了如何使用MySQL DROP INDEX语句删除表的现有索引。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值