索引优化驱动SQL优化总结

Posted 潇潇雨歇_

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了索引优化驱动SQL优化总结相关的知识,希望对你有一定的参考价值。

一.表字段建索引的优缺点

优势:
1.提高数据检索的效率,降低数据库的IO成本。
2. 通过索引列对数据进行排序,降低数据排序的成本,降低了CPU的消耗。
劣势:
1.虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行INSERT、UPDATE和DELETE。因为更新表时,mysql不仅要保存数据,还要保存一下索引文件每次更新添加了索引列的字段,都会调整因为更新所带来的键值变化后的索引信息。
2.实际上索引也是一张表,该表保存了主键与索引字段,并指向实体表的记录,所以索引列也是要占用空间的。

二.索引的创建时机

2.1 适合创建索引的情况
1.主键自动建立唯一索引;
2.频繁作为查询条件的字段应该创建索引
3.查询中与其它表关联的字段,外键关系建立索引
4.单键/组合索引的选择问题, 组合索引性价比更高
5.查询中排序的字段,排序字段若通过索引去访问将大大提高排序速度
6.查询中统计或者分组字段
2.2 不适合创建索引的情况
1.表记录太少
2.经常增删改的表或者字段
3.Where 条件里用不到的字段不创建索引
4.过滤性不好的不适合建索引

三.生产上SQL优化的步骤

1.慢查询的开启并捕获
1.1 观察,至少跑一天,看看生产的慢SQL情况
1.2 开启慢查询日志,设置阙值,比如查询超过5秒

以上是关于索引优化驱动SQL优化总结的主要内容,如果未能解决你的问题,请参考以下文章

基于MySQL 的 SQL 优化总结

MySQL索引优化(索引三表优化案例)

BATJ解决千万级别数据之MySQL 的 SQL 优化大总结

MySQL索引优化步骤总结

sql优化(oracle)- 第三部分  sql优化总结

MySql知识体系总结(SQL优化篇)