mysql怎么慢查询 mysql57查询慢

mysql如何找出慢sqllong_query_time参数的查看
默认是10秒,10秒以上的sql会记录 。可进行值的修改,
long_query_time 默认不开启,如果不是需要进行开始调优,一般不建议开启此参数 。
永久开启:
在my.cnf中的
1.查看慢查询的时长
看此图默认10秒,是大于10秒,不等于10秒 。
2.修改此时长
临时修改 , 重启mysql后失效,修改后需要新开连接才能查询到
永久在配制文件中修改
查看慢sql个数
将所有没有使用带索引的查询语句全部写到慢查询日志中
设置没带索引的慢sql进行记录
最后汇总my.cnf配制
Mysql中如何查看慢查询以及查看线程1,slow_query_log
这个参数设置为ON,可以捕获执行时间超过一定数值mysql怎么慢查询的SQL语句 。
2,long_query_time
当SQL语句执行时间超过此数值时,就会被记录到日志中,建议设置为1或者更短 。
3,slow_query_log_file
记录日志mysql怎么慢查询的文件名 。
4,log_queries_not_using_indexes
这个参数设置为ON , 可以捕获到所有未使用索引的SQL语句,尽管这个SQL语句有可能执行得挺快 。
【mysql怎么慢查询 mysql57查询慢】二、检测mysql中sql语句的效率的方法
1、通过查询日志
(1)、Windows下开启MySQL慢查询
MySQL在Windows系统中的配置文件一般是是my.ini找到[mysqld]下面加上
代码如下
log-slow-queries = F:/MySQL/log/mysqlslowquery 。log
long_query_time = 2
(2)、Linux下启用MySQL慢查询
MySQL在Windows系统中的配置文件一般是是my.cnf找到[mysqld]下面加上
代码如下
log-slow-queries=/data/mysqldata/slowquery 。log
long_query_time=2
说明
log-slow-queries = F:/MySQL/log/mysqlslowquery 。
为慢查询日志存放的位置,一般这个目录要有MySQL的运行帐号的可写权限,一般都将这个目录设置为MySQL的数据存放目录;
long_query_time=2中的2表示查询超过两秒才记录;
2.show processlist 命令
SHOW PROCESSLIST显示哪些线程正在运行 。您也可以使用mysqladmin processlist语句得到此信息 。
各列的含义和用途:
ID列
一个标识,mysql怎么慢查询你要kill一个语句的时候很有用,用命令杀掉此查询 /*/mysqladmin kill 进程号 。
user列
显示单前用户,如果不是root,这个命令就只显示你权限范围内的sql语句 。
host列
显示这个语句是从哪个ip的哪个端口上发出的 。用于追踪出问题语句的用户 。
db列
显示这个进程目前连接的是哪个数据库 。
command列
显示当前连接的执行的命令,一般就是休眠(sleep),查询(query) , 连接(connect) 。
time列
此这个状态持续的时间,单位是秒 。
state列
显示使用当前连接的sql语句的状态,很重要的列,后续会有所有的状态的描述,请注意,state只是语句执行中的某一个状态 , 一个
sql语句,以查询为例,可能需要经过copying to tmp table,Sorting result , Sending
data等状态才可以完成
info列
显示这个sql语句,因为长度有限,所以长的sql语句就显示不全,但是一个判断问题语句的重要依据 。
这个命令中最关键的就是state列 , mysql列出的状态主要有以下几种:
Checking table
正在检查数据表(这是自动的) 。
Closing tables
正在将表中修改的数据刷新到磁盘中,同时正在关闭已经用完的表 。这是一个很快的操作,如果不是这样的话,就应该确认磁盘空间是否已经满了或者磁盘是否正处于重负中 。

推荐阅读