性能下降SQL慢执行时间长,等待时间长的原因:
查询语句写的low
索引失效
关联查询太多join
服务器调优的各项配置(缓冲,线程数等)
优化:
- 创建索引
- 在表中加索引 (单值索引)
- 在表中加索引 (复合索引)
sql的执行顺序:
1,from 查什么表
2,on
3,join
4,where
5,group by
6,having
7,select
8,distinct
9,limit
索引:
单值索引: 单例 age 一个表可以有多个单值索引 name
唯一索引: 不能重复 。id 等
符合索引: 多个列构成的索引。相当于书的二级目录 (name,age)
解析sql过程
from on join where group having select distinct order desc limit
小表驱动大表, sql连表的时候 小表在外 大表在内 可以优化 效率
当编写 join 语句的时候 把小数据量的表放左边
【一般情况下对于左外连接,给左表加索引。右外连接,给右表加索引】
三张表优化
- 小表驱动大表
- 索引建立在经常查询的字段上 (索引 加在常用字段比如where后面的字段)
避免索引失效的原则
- 符合索引的时候不需要跨列或无需使用
本文深入探讨了SQL查询性能下降的原因,如低效的查询语句、索引失效、过多的关联查询以及服务器配置不当。提供了详细的优化策略,包括合理创建索引、调整服务器配置和优化查询顺序。此外,还讲解了SQL执行流程和如何通过小表驱动大表来提升效率。

1778

被折叠的 条评论
为什么被折叠?



