您的位置:首页 > 数据库 > MySQL

MySQL优化技术:定位慢查询

2017-08-02 10:18 579 查看
一、什么是慢查询?

        在执行数据库增、删、改、查操作时,耗时较大,超过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万数据的大表

        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文件夹下的日志文件

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: