# 数据库:SQL 优化 7 条经验总结
作者:Tom哥
公众号:微观技术
博客:https://offercome.cn (opens new window)
人生理念:知道的越多,不知道的越多,努力去学
MySQL 相信大家一定都不陌生,但是不陌生不一定会用!
会用不一定能用好!
今天,Tom哥就带大家复习一个高频面试考点,SQL 优化有哪些技巧?
当然这个还是非常有实用价值的,工作中你也一定用的上。如果应用得当,升职加薪,指日可待
# 1、创建索引
一定要记得创建索引,创建索引,创建索引
重要的事说三遍!
执行没有索引的 SQL 语句,肯定要走全表扫描,慢是肯定的。
这种查询毫无疑问是一个慢 SQL 查询。
那么问题来了,是不是要收集所有的 where 查询条件,然后针对所有的组合都创建索引呢?
答案肯定是否定的。
MySQL 为了提升数据查询速率,采用 B+ 树结构,通过 空间换时间 设计思想。另外每次对表数据做更新操作时,都要调整对应的 索引树 ,执行效率肯定会受影响。
本着 二八原则,互联网请求 读多写少 的特点,我们一定要找到一个平衡点。
阿里巴巴的开发者手册建议,单表索引数量控制在5个以内,组合索引字段数不允许超过5个 其他建议:
- 禁止给表中的每一列都建立单独的索引
- 每个Innodb表必须有个主键
- 要注意组合索引的字段的顺序
- 优先考虑覆盖索引
- 避免使用外键约束