【116期】MySQL索引优缺点、何时需要/不需要创建索引、索引及sql语句的优化
共 2562字,需浏览 6分钟
·
2021-01-13 16:54
阅读本文大概需要 4 分钟。
来自:cnblogs.com/l199616j/p/11232392.html
一、什么是索引?
二、索引的作用?
三、优点:
通过创建唯一性索引,可以保证数据库表中的每一行数据的唯一性。
可以加快数据的检索速度
可以加速表与表之间的连接
在使用分组和排序进行检索的时候,可以减少查询中分组和排序的时间
四、缺点
创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。
索引需要占用物理空间,数据量越大,占用空间越大
会降低表的增删改的效率,因为每次增删改索引,都需要进行动态维护
五、什么时候需要创建索引
主键自动建立唯一索引
频繁作为查询条件的字段应该创建索引
查询中排序的字段创建索引将大大提高排序的速度(索引就是排序加快速查找
查询中统计或者分组的字段;
六、什么时候不需要创建索引
频繁更新的字段不适合创建索引,因为每次更新不单单是更新记录,还会更新索引,保存索引文件
where条件里用不到的字段,不创建索引;
表记录太少,不需要创建索引;
经常增删改的表;
数据重复且分布平均的字段,因此为经常查询的和经常排序的字段建立索引。注意某些数据包含大量重复数据,因此他建立索引就没有太大的效果,例如性别字段,只有男女,不适合建立索引。
七、索引的分类:
普通索引:最基本的索引,它没有任何限制
唯一索引:索引列的值必须唯一,且不能为空,如果是组合索引,则列值的组合必须唯一。
主键索引:特殊的索引,唯一的标识一条记录,不能为空,一般用primary key来约束。
联合索引:在多个字段上建立索引,能够加速查询到速度
八、索引和sql语句的优化
select id,name from product limit 866613, 20
select id,name from product where id> 866612 limit 20
。推荐阅读:
【114期】中高级开发,面试不会点儿 Docker 真的不行!
【113期】四连问:API 接口应该如何设计?如何保证安全?如何签名?如何防重?
微信扫描二维码,关注我的公众号
朕已阅