- MySQL官方对索引的定义为:索引(index)是帮助MySQL高效获取数据的数据结构。
- 提取句子主干,就可以得到索引的本质:索引是数据结构
索引的作用
-
提高查询速度
-
确保数据的唯一性
-
可以加速表和表之间的连接 , 实现表与表之间的参照完整性
-
使用分组和排序子句进行数据检索时 , 可以显著减少分组和排序的时间
-
全文检索字段进行搜索优化
索引的分类
-
主键索引 (Primary Key)
-
唯一的标识,主键不可重复,只有一个列作为主键
-
主键 : 某一个属性组能唯一标识一条记录
特点 :
-
最常见的索引类型
-
确保数据记录的唯一性
-
确定特定数据记录在数据库中的位置
-
-
-
唯一索引 (Unique)
-
避免重复的列出现,唯一索引可以重复,多个列都可以标识位唯一索引
-
作用 : 避免同一个表中某数据列中的值重复
与主键索引的区别:
-
主键索引只能有一个
-
唯一索引可能有多个
-
CREATE TABLE `Grade`(
`GradeID` INT(11) AUTO_INCREMENT PRIMARYKEY,
`GradeName` VARCHAR(32) NOT NULL UNIQUE
-- 或 UNIQUE KEY `GradeID` (`GradeID`)
)
-
常规索引 (Index)
-
默认的,index。key关键字来设置
-
作用 : 快速定位特定数据
注意 :
-
index 和 key 关键字都可以设置常规索引
-
应加在查询找条件的字段
-
不宜添加太多常规索引,影响数据的插入,删除和修改操作
-
CREATE TABLE `result`(
-- 省略一些代码
INDEX/KEY `ind` (`studentNo`,`subjectNo`) -- 创建表时添加
)
-- 创建后添加
ALTER TABLE `result` ADD INDEX `in