索引
1.什么是索引
- 帮助MySQL高效获取数据的数据结构
2.为什么要建立索引
- 提高查询效率
3.索引的优势和劣势
-
优势
- 提高数据检索的效率,降低数据库的IO成本
- 通过索引对数据进行排序,降低数据排序成本,降低了CPU的消耗
-
劣势
-
占用内存,会以文件形式存储到磁盘上
-
降低了更新表的速率,因为要更新索引列的数据
-
4.索引分类
-
单值索引
- 一个索引只包含一个列,一个表可以有多个单值索引
- 一般来说,一个表建立索引不要超过5个
-
唯一索引
- 索引列的值必须唯一,但允许有空值
-
复合索引
- 一个索引包含多个列
-
全文索引
- MySQL全文检索是利用查询关键字和查询列内容之间相关进行检索,可以利用全文索引来提高匹配的速度
5.索引为什么能提高效率
- 因为在创建索引的时候,系统会维护一个便于查找的高级数据结构(B+Tree),在搜索的时候就不会顺序查找,而是可以快速定位到指定数据。
6.操作索引
-
创建索引
create index 索引名 on 表名(字段)
-
查看索引
show index from 表名
-
修改索引
alter table 表名 add index 索引名(字段)
-
删除索引
drop index 索引名 on 表名
7.索引建立选择
- 适合建立索引
- 1.主键自动建立唯一索引
- 2.频繁作为查询条件的字段
- 3.关联表中的外键
- 4.查询中排序的字段
- 5.查询中做分组的字段
- 不适合建立索引
- 1.频繁增删改的字段
- 2.where条件用不到的字段
- 3.数据重复太多的字段
知是行之始,行是知之成