MySQL 添加和删除索引

摘要:介绍添加、删除和显示索引的方法。

  今天为大家演示MySQL数据库索引的常见操作,包括创建、删除和查询等。下面首先介绍为什么需要添加索引。

索引的作用

  索引用于快速找出在某一列中有一特定值的行。如果不使用索引,MySQL必须从第一条记录开始读完整张表,直到找出相关的行;表越大,查询数据所花费的时间就越多。如果表中查询的列有一个索引,那么MySQL能够快速定位一个位置进而搜索数据文件,避免查检索有数据,从而节省很多时间。

普通索引

  普通索引是最基本的索引,它没有任何限制。例如,MyISAM和InnoDB存储引擎只支持BTREE索引,在InnoDB引擎中,数据库创建的索引都是以B+树的形式存在。

  这里介绍两种创建普通索引的方式:

  ① 以修改表结构的方式添加索引:

ALTER TABLE table_name ADD INDEX index_name ON (column(length))

  ② 创建表的同时创建索引:

CREATE TABLE `test1` (
`id` int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
`name` varchar(20) DEFAULT NULL COMMENT '姓名',
`course` varchar(20) DEFAULT NULL COMMENT '课程',
`score` int(4) DEFAULT NULL COMMENT '分数',
create_time datetime DEFAULT NULL COMMENT '创建时间',
index [indexName] (name)
) ENGINE=InnoDB CHARACTER SET = utf8mb4 COMMENT = '测试表';

  此demo中,同时展示了如何创建表的主键。

创建唯一索引

  唯一索引与普通索引类似,不同的就是:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须是唯一的,创建方法和普通索引类似:

ALTER TABLE table_name ADD UNIQUE uk_index_name ( `column` ) 

  下面是创建其它所有的一些方法:

  1. 添加FULLTEXT(全文索引)
ALTER TABLE table_name ADD FULLTEXT ( `column`) 
  1. 添加组合索引
ALTER TABLE table_name ADD INDEX index_name ( `column1`, `column2`, `column3` )

删除索引和主键

  如果创建了某个索引,但是,发现不需要了,就可以使用如下两种方法进行删除:

DROP INDEX index_name ON table;
或者
ALTER table table_name DROP INDEX index_name;

  删除主键的方法如下:

ALTER TABLE table_name DROP PRIMARY KEY;

显示索引信息

  可以使用 SHOW INDEX 命令列出表中已经创建的索引信息。输出信息通过添加 \G 来格式化,提高可读性。实例如下:

SHOW INDEX FROM table_name\G

唯一索引和普通索引如何选择

  唯一索引和普通索引在查询性能上基本没有差别,但在更新上普通索引会快于唯一索引。所以在可以选择普通索引的前提下尽可能选择普通索引。如果需要限制索引列的值必须唯一,则只能使用唯一索引。

结束语

  对于Wiener以上的话题,大家又有什么自己的独特见解呢?欢迎在下方评论区留言!

posted @ 2022-05-29 18:32  楼兰胡杨  阅读(880)  评论(0编辑  收藏  举报