SQL语句优化
如果项目要对SQL语句进行优化,说明已经到了最后一步,一般来说:1.业务优化>2.设计,程序优化>3.DB,SYSTEM优化>4.SQL优化这种顺序去逐步优化效果更佳。
1.原理:cpu消耗过大通常情况下都是有慢sql造成的,这里的慢sql包括全表扫码,扫码数据量过大,内存排序,磁盘排序,锁竞争等待等。
2.表现现象:sql执行状态为,sending data,Copying to tmp table,Copying to tmp table on disk,Sorting result,locked。
3.可以通过登录数据库,通过show processlist查看当前正在执行的sql,当执行完show processlist后出现大量的语句,通常状态为sending data,Copying to tmp table,Copying to tmp table on disk,Sorting result,Using filesort都是sql有性能问题的。
4.通过explain查看具体sql执行计划。
以下是一些比较经典的案例:
这个PPT是阿里巴巴在线技术峰会DB专家讲述的云数据库十大经典案例,我觉得总结的非常好,大家感兴趣的可以去群共享下载,一共有50多页PPT,这里就不再全部截图。