MySQL 索引概述
MySQL 索引是一种数据结构,用于加快数据库查询的速度和性能。MySQL 索引的建立对 MySQL 的高效运行是很重要的,如果表中的数据数据量很大,并且需要经常读取,那么就要花时间去建立优秀的索引,或者优化使用的查询语句。
索引的种类
一般从以下三个角度来划分索引:
逻辑功能 | 实现 | 作用字段个数 |
---|---|---|
普通索引、唯一索引、主键索引、全文索引 | 聚簇索引、非聚簇索引 | 单列索引、联合索引 |
按逻辑功能划分
普通索引
普通索引是 MySQL 中最基本的索引类型之一,它的目的只是只是加快对表中数据的查询,提高查询效率。
下面用一个例子演示一下:
user 表的结构
CREATE TABLE users (
id INT(11) NOT NULL AUTO_INCREMENT,
username VARCHAR(50) NOT NULL,
password VARCHAR(255) NOT NULL,
PRIMARY KEY (id)
);
通过以下的语句为 username
列创建普通索引:
ALTER TABLE users ADD INDEX idx_username (username);
这条语句为username
列创建一个名为idx_username
的索引。
唯一索引
在创建索引的时候添加关键字unique
可以创建唯一索引,唯一索引的列要求列内的数据值在全表必须是唯一的,可以为空。
以上面users
表为例子,创建唯一索引的语句如下:
ALTER TABLE users ADD UNIQUE INDEX idx_username (username);
这条语句会为username
列创建一个名为idx_username
的唯一索引,创建完唯一索引后