索引index 是mysql高效获取数据的数据结构
1、索引优势
①提高查询效率(降低IO使用率)
②降低cpu使用率 (...order by ... desc,因为 B树索引本身就是一个好排序的结构,因此在排序时可以直接使用)
2、索引的弊端:
①索引本身很大,可以存放在内存/硬盘(通常为硬盘)
②索引一下情况均不适用:
a.少量数据
b.频繁更新的字段
c.很少使用的字段
③.索引会降低增删改的效率(增删改查)
3、索引分类
主键索引:
单值索引:单列,一个表可有多个单值索引, 如 用户名称 name
唯一索引:不能重复吗,如id
复合索引:多列构成的索引(理解为二级目录)
4、创建索引
1、根据查询要求,迅速缩小查询范围,避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引
2、在经常需要进行检索的字段上创建索引,比如要按照表字段用户名name进行检索,那么就应该在姓名字段上创建索引,如果经常要按照员工部门和员工岗位级别进行检索,那么就应该在员工部门和员工岗位级别这两个字段上创建索引。
5、创建命令
基础命令结构
create 索引类型 索引名 on 表(字段)
假设表结构
| id | name | dept | age | email|
单值索引:
create index dept_index on tb(dept)
唯一索引:
create unique index name_index on tb(name)
复合索引:
create index dept_name_index on tb(dept, name)
注意:如果一个字段是主键,则这个字段本身就是主键索引
评论区