专栏目录请点击
查询慢的原因
查询数据太多
- 所以我们要看sql能不能拆
- 条件过滤尽量少
关联太多的表
- 比如很多的
join
语句 - A join B的原理就是用A表的每一条数据扫描B整张表
没有利用索引
- 针对列建索引
- 索引并不是越多越好,当数据更新的时候,索引也会根据调整,这会很耗性能
- 有些情况下就算有索引也不一定会用
服务器与参数
- 服务器越好查询的越快
- 相关参数的配置,比如缓冲、线程数等
MYSQL瓶颈
CPU
- sql中大量的数据进行比较、关联、排序、分组
IO
- 实例内存满足不了缓存数据或排序需要,导致产生大量物理IO
- 查询执行效率低,扫描过多的数据行
锁
- 不适宜的锁设置,导致线程阻塞,性能下降‘
- 死锁,线程之间交叉调用资源,导致死锁,程序卡住
服务器
- 服务器硬件性能瓶颈