一、什么是慢查询?
在执行数据库增、删、改、查操作时,耗时较大,超过MySQL数据库指定的操作时间,将会将其定义为一种慢的查询。MySQL默认时间为10秒,即一次超过10秒的数据库操作,将被定义为慢查询;这个时间是可以认为设置的。
二、MySQL常用的状态操作
- 1、格式
show [session | global] status
默认参数是session,表示取出当前窗口的执行;如果你希望知道从数据库启动到现在的所有信息,则需要传递global参数,如:
show global status like 'com_select'
- 2、show status like 'uptime'
查看mysql启动的时间
- 3、show status like 'com_select'
一共进行了多少次查询
- 4、show status like 'com_insert'
一共进行了多少次insert操作
- 5、show status like 'com_delete'
一共进行了多少次delete操作
- 6、show status like 'com_update'
一共进行了多少次update操作
- 7、show status like 'connections'
查看mysql的连接数
- 8、show status like 'slow_queries'
查看有哪些慢查询
- 9、show variables like 'long_query_time'
查看当前慢查询设置的时间
- 10、set long_query_time = 1
设置慢查询时间为1秒,这个整数值是可以任意定义的
三、定位慢查询实战
需求:
将数据库操作(增、删、改、查)时间超过1秒钟的都记录到MySQL日志中
实现
- 1、修改MySQL默认的慢查询时间,设置为1秒钟
set long_query_time = 1
- 2、构建一个400万数据的大表
- 3、把慢查询的SQL记录到MySQL日志中
文件的默认目录是MySQL数据库安装目录下的data文件夹下
(1)先停止mysql服务
在cmd中输入:net stop mysql
(3)定位到MySQL目录
在cmd中输入:cd mysql安装路径
(2)通过安全的方式启动MySQL,并记录日志
在cmd中输入:bin\mysqld.exe --safe-mode --slow-query-log
(3)执行耗时的SQL操作
查询员工表中的信息,select * from emp where empno=345679
(4)查看日志文件
查看mysql安装路径下的data文件夹下的日志文件