一、索引基础概念
(一)索引是什么
在数据库里,索引类似书籍的目录,是一种能加速数据检索的数据结构。以员工信息表为例,表中存储了大量员工的姓名、工号、部门等数据。若要查找特定工号的员工信息,若无索引,数据库需逐行扫描全表数据;若有索引,数据库就能像通过目录找书籍内容一样,快速定位到目标数据所在位置,大大节省查询时间。
(二)索引的作用
1. 提升查询效率:最主要作用就是加速查询,让数据库快速定位满足条件的数据行,减少磁盘I/O操作。比如电商数据库中查询某商品订单,通过索引能瞬间找到相关订单记录,而非全表搜索海量订单数据。
2. 保证数据唯一性:唯一索引可确保索引列的值无重复,像用户表中邮箱字段设置唯一索引,就能防止重复邮箱注册,维护数据完整性。
二、索引的类型
(一)单列索引
基于单个列创建的索引。在学生成绩表中,对“学号”列创建单列索引:
CREATE INDEX idx_student_id ON student_scores (student_id);
查询特定学号学生成绩时,如“SELECT * FROM student_scores WHERE student_id = 'S001';”,可借助此索引快速定位数据,提升查询速度。
(二)复合索引
由多个列组成的索引。假设成绩表还有“课程名称”和“成绩”列,创建复合索引:
CREATE INDEX idx_course_score ON student_scores (course_name, score);
复合索引遵循最左前缀原则,查询“SELECT * FROM student_scores WHERE course_name = '数学' AND score > 80;”能利用此索引;但仅查询“SELECT * FROM student_scores WHERE score > 80;”,因没从最左边“课程名称”列开始匹配,无法充分利用。
(三)唯一索引
确保索引列值唯一。对用户表“手机号”列创建唯一索引:
CREATE UN


1247

被折叠的 条评论
为什么被折叠?



