7.3 删除索引
删除索引是指将表中已经存在的索引删除掉。一些不再使用的索引会降低表的更新速度,影响数据库的性能。对于这样的索引,应该将其删除。本节将详细讲解删除索引的方法。
对应已经存在的索引,可以通过DROP语句来删除索引。基本形式如下:
DROP INDEX索引名ON表名;
其中,“索引名”参数指要删除的索引的名称;“表名”参数指索引所在的表的名称。
【示例7-19】下面删除indexl表的索引。在删除索引之前,使用SHOW CREATE TABLE语句来查看索引的名称。SHOW CREATE TABLE语句执行如下:
*************************** 1. row *************************** Table: index1 Create Table: CREATE TABLE `index1` ( `id` int(11) DEFAULT NULL, `name` varchar(20) DEFAULT NULL, `sex` tinyint(1) DEFAULT NULL, KEY `id` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 1 row in set (0.00 sec)
结果显示,索引的名称为id。然后执行DROP语句来删除索引。SQL代码如下:
DROP INDEX id ON index1;
代码执行结果如下:
mysql> DROP INDEX id ON index1 ;
Query OK, 0 rows affected (0.02 sec)
Records: 0 Duplicates: 0 Warnings: 0
结果显示索引删除成功。为了确认索引是否已经成功删除,再次执行SHOW CREATE TABLE语句来查看indexl表的结构。SHOW CREATE TABLE语句执行如下:
mysql> show create table index1 \G; *************************** 1. row *************************** Table: index1 Create Table: CREATE TABLE `index1` ( `id` int(11) DEFAULT NULL, `name` varchar(20) DEFAULT NULL, `sex` tinyint(1) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 1 row in set (0.00 sec)
结果显示,名为index1的索引已经不存在了。