假如打开了mysql的慢日志,那麼该日志会纪录下全部mysql觉得高效率低的sql语句,我们可以根据查询慢日志获得这种句子并开展提升
MySQL的慢查询日志较为粗略地,主要是根据下列3项基础的信息内容。
Query_time:查看用时。
Rows_examined:查验了是多少条纪录。
Rows_sent:回到了是多少行纪录(結果集)。 之上3个值能够大概考量一条查看的成本费。 假如查验了很多纪录,而只回到不大的結果集,则通常代表着查看品质不佳。
别的信息内容包含以下几个方面。
Time:实行SQL的开始时间。
Lock_time:等候tablelock的時间,留意InnoDB的行锁等候是不容易反映在这儿的。
User@Host:执行查询的客户和手机客户端IP。
能够应用mysqldumpslow指令得到慢查询 日志引言来解决慢查询日志,或是应用更强的第三方专用工具pt-query-digest。,慢查询日志里的慢查询不一定便是欠佳SQL,还可能是受别的的查看危害,或是受服务器资源限定所造成的慢查询。 例如下边的事例,对话被堵塞了,事实上是一个行锁等候50s请求超时,随后纪录到慢查询日志里。
A 查询是不是打开慢日志:
发觉沒有开启
假如环境变量或运行主要参数沒有得出file_name值,慢查询日志将默认设置取名为“IP地址-slow.log”,假如得出了文件夹名称,但并不是相对路径名,文档则载入数据信息文件目录。
像这儿,慢日志便是载入数据信息文件目录
我们可以在MySQL手机客户端下应用指令
查询静态变量long_query_time。全部实行時间超出long_query_time秒的SQL句子都是会被纪录到慢查询日志里。
提议将这一時间设为一秒
怎样打开慢日志并设定储存途径和请求超时時间:
在环境变量的 [mysqld] 下加上下边一两句:
就可以
很有可能并不是立即在my.cnf 中加上,只是在其引进的别的环境变量中才可以寻找[mysqld]
随后重新启动一下mysql服务项目
B 剖析慢查询日志
假如慢查询日志內容过多,看文档是难以看得出物品的,能够应用mysqldumpslow或是pt-query-digest专用工具
mysqldumpslow:
pt-query-digest:
最先安裝pt-query_digest指令
基础指令文件格式
pt-query-digest [options] [files] [dsn]
普遍使用方法:假定慢日志途径为 /tmp/mysql-slow.log
相对主要参数表述:
Exectime:实行時间。
Lock time:表锁的時间。
Rows sent:回到的結果集纪录数。
Rowsexamine:具体扫描仪的纪录数。
Query size:运用和数据库查询互动的查看文字尺寸。
Rank:全部查看日志剖析结束后,此查看的排列。
Query ID:查看的标志字符串数组。
Responsetime:总的响应速度,及其总占有率。一般低于5%能够无需关心。
Calls:查看被启用实行的频次。
R/Call:每一次实行的均值响应速度。
Apdx:应用软件的特性指数值评分。(Apdex回应的時间越长,评分越低。)
V/M:响应速度的标准差平均值比(基因变异数对平均值比,变异系数)。可表明样版的分散化水平,这一值越大,通常是越非常值得考 虑提升的目标。
Item:查看的简易表明,包含查看的种类和所涉及到的表。
自然该指令还可以用以剖析mysql二进制日志文档,留意,二进制日志并不是mysql服务项目的日志,二进制日志一般放到数据信息文件目录,能够根据show master status查询是不是打开二进制日志
针对之上剖析指令,一样能够再加上主要参数挑选信息内容,如“–since”、“–until”。