SQL优化
1.避免使用select*,这样不会走覆盖索引,导致回表操作,导致SQL性能变低
2.union all 代替 union 如果需求没有要求去重的话
3.小表驱动大表的思想,可以用in关键字实现,会优先执行in里面的子查询,如果in里面的数据比较少,可以作为条件查询
4.尽量使用批量操作,避免多次请求数据库
5.用链接查询代替子查询,可以提升效率,子查询的时候会创建临时表,需要查询结束后再删除,比较耗费性能
避免索引失效
1.全值匹配,对索引中所有列指定具体值
2.最左前缀法则,如果索引了多列,不要跳过索引中的列
3.范围查询右边的列,不能使用索引,比如and 列>1后面的就失效了
4.不要在索引列进行运算操作,索引会失效
5.字符串不加单引号,造成索引失效
6.尽量使用覆盖索引,避免select*
7.以%开头的like模糊查询,会导致索引失效,尾部模糊匹配,不会导致失效
8.MySQL评估使用索引比全表查询更慢的话,会不使用索引
9.使用过程中,尽量使用复合索引,少使用单列索引,数据库会选择一个最优的索引来使用

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐