# 数据库:SQL 优化 7 条经验总结

作者:Tom哥
公众号:微观技术
博客:https://offercome.cn (opens new window)
人生理念:知道的越多,不知道的越多,努力去学

MySQL 相信大家一定都不陌生,但是不陌生不一定会用!

会用不一定能用好!

今天,Tom哥就带大家复习一个高频面试考点,SQL 优化有哪些技巧?

当然这个还是非常有实用价值的,工作中你也一定用的上。如果应用得当,升职加薪,指日可待

# 1、创建索引

一定要记得创建索引,创建索引,创建索引

重要的事说三遍!

执行没有索引的 SQL 语句,肯定要走全表扫描,慢是肯定的。

这种查询毫无疑问是一个慢 SQL 查询。

那么问题来了,是不是要收集所有的 where 查询条件,然后针对所有的组合都创建索引呢?

答案肯定是否定的。

MySQL 为了提升数据查询速率,采用 B+ 树结构,通过 空间换时间 设计思想。另外每次对表数据做更新操作时,都要调整对应的 索引树 ,执行效率肯定会受影响。

本着 二八原则,互联网请求 读多写少 的特点,我们一定要找到一个平衡点。

阿里巴巴的开发者手册建议,单表索引数量控制在5个以内,组合索引字段数不允许超过5个 其他建议:

  • 禁止给表中的每一列都建立单独的索引
  • 每个Innodb表必须有个主键
  • 要注意组合索引的字段的顺序
  • 优先考虑覆盖索引
  • 避免使用外键约束
上次更新: 2023/3/4