如何开启MySQL的慢查询日志

SQL herman 1234浏览 0评论
公告:“业余草”微信公众号提供免费CSDN下载服务(只下Java资源),关注业余草微信公众号,添加作者微信:xttblog,发送下载链接帮助你免费下载!
本博客日IP超过1800,PV 2600 左右,急需赞助商。
极客时间所有课程通过我的二维码购买后返现24元微信红包,请加博主新的微信号:xttblog,之前的微信号好友位已满,备注:返现
所有面试题(java、前端、数据库、springboot等)一网打尽,请关注文末小程序
视频教程免费领

在讲到性能调优方面,我想无外乎就是3个方面:
1.硬件调优(替换有问题的硬件)
2.对数据库配置调优
3.对SQL语句进行调优

第一种通常可以让中央处理器(CPU)或磁盘速度加倍,也可以让内存增大 4 到 8 倍。主要是让资源最大化的利用。
第二种方法是对MySQL服务器(也称为mysqld)进行调优。对这个进程进行调优意味着适当地分配内存,并让mysqld了解将会承受何种类型的负载。加快磁盘运行速度不如减少所需的磁盘访问次数。确保MySQL进程正确操作就意味着它花费在服务查询上的时间要多于花费在处理后台任务(如处理临时磁盘表或打开和关闭文件)上的时间。
第三种方法是确保增删改查进行了优化。这意味着对表应用了最优的索引,查询是按照可以充分利用MySQL功能的方式来编写的。包括SQL语句的编写,索引,存储过程,函数等等的使用。
那么如何发现自己写的SQL是否高效呢?下面教你一种最重要的方法:记录慢速查询
我们可以配置mysqld将这些慢速查询记录到适当命名的慢速查询日志中。然后通过分析日志来确定哪些部分需要进一步的优化。启用慢速查询日志需要在my.cnf中做一下配置:

	[mysqld]
	log-slow-queries
	long_query_time = 3
	log-queries-not-using-indexes

这三个设置一起使用,可以记录执行时间超过3秒和没有使用索引的查询。有关log-queries-not-using-indexes的配置。我们必须使用MySQL4.1或更高版本。慢速查询日志都保存在MySQL数据目录中,名为hostname-slow.log。如果希望使用一个不同的名字或路径,可以在my.cnf中使用log-slow-queries = /new/path/to/file 实现此目的。
阅读慢速查询日志可以通过mysqldumpslow命令进行。指定日志文件的路径,就可以看到一个慢速查询的排序后的列表,并且还显示了它们在日志文件中出现的次数。一个非常有用的特性是mysqldumpslow在比较结果之前,会删除任何用户指定的数据,因此对同一个查询的不同调用被计为一次;这可以帮助找出需要工作量最多的查询。

 

业余草公众号

最后,欢迎关注我的个人微信公众号:业余草(yyucao)!可加QQ1群:135430763(2000人群已满),QQ2群:454796847(已满),QQ3群:187424846(已满)。QQ群进群密码:xttblog,想加微信群的朋友,之前的微信号好友已满,请加博主新的微信号:xttblog,备注:“xttblog”,添加博主微信拉你进群。备注错误不会同意好友申请。再次感谢您的关注!后续有精彩内容会第一时间发给您!原创文章投稿请发送至532009913@qq.com邮箱。商务合作可添加助理微信进行沟通!

本文原文出处:业余草: » 如何开启MySQL的慢查询日志