1. 首先,分析SQL查询速度慢的原因(如果连如何分析出查询慢的方法都不懂,谈何优化)
方法一:可以开启慢查询日志,进行分析,不要直接打开慢查询日志进行分析,这样比较浪费时间精力,可以使用pt-query-digest工具进行分析。
方法二:使用show profile方法进行分析,进入mysql,设置set profiling=1;开启,服务器上执行的所有语句会检测消耗的时间,存到临时表中,使用show profiles 和show profile for query 临时表ID进行查询分析。
方法三:使用show status,会返回一些计数器,show global status查看服务器级别的所有计数,有时根据这些计数,可以猜测出哪些操作代价较高或者消耗时间多。
方法四:使用show processlist观察是否有大量线程处于不正常的状态或者特征。
方法五:使用explain分析单条SQL语句。
2. 接着就进行SQL语句优化
2.1 优化查询过程中的数据访问
(1)查询不需要的记录时候,使用limit解决
(2)尽量避免使用select * 查询,可以指定需要的字段进行查询
(3)重复查询相同的数据,可以缓存数据,下次可以直接读取缓存
(4)可以把经常作为where条件的字段作为索引
未完待续。。。。。