最近在学习MYSQL语句优化,在此做个记录。
1.优化数据访问
查询性能底下的原因最基本的原因是访问的数据太多。对于低效的查询,可以从下面两个步骤来分析
1.确认应用程序是否在检索大量超过需要的数据。这意味着访问过多的行或者列,典型案例
(1)查询不需要的记录。
(2)多表关联时返回全部列
(3)总是取出全部列
(4)重复查询相同的数据
2.确认MYSQL服务层是否在分析超过大量超过需要的数据
在确认第一步没问题后,接下来就确认查询年是否扫描了过多的行。对于MYSQL。衡量查询的三个指标
响应时间(服务时间+排队时间)
扫描的行数
返回的行数
访问类型
2.重构查询方式
1.切分查询
典型就是删除大量旧数据时,将一个大的delete语句分割很多次的删除,删一会儿,停一会儿
2.分解关联查询
仅当必要的时候,比如,后面的查询能用到前面查询的缓存