MySQL日志文件之查询日志和慢查询日志详解
- 3025
- MySQL
- 0
- super_dodo
- 2018/07/16
今早被一个开发妹纸鄙视了,说我们之前的项目里面很多查询直接裸奔(没用到索引或没建索引).其实被人质疑也是一件很正常的事情,人非圣贤孰能无过,但是我们是搬砖工,为了大厦的健康,必须要事无巨细,审查到底。
虽然有些自负,但是先承认着错误,毕竟是自己的孩子,自己亲手建造的工程。接下来开始在测试环境对MySQL的所有语句进行一次大排查(虽然看上去有点治标不治本)。其实之前也实际使用过这些功能,时间久了,算是温故而知新吧。
因为功能板块比较多,我们就先从MySQL的日志文件入手(查询日志和慢查询日志)
MySQL日志分类:日志文件记录了影响数据库的各种类型活动,MySQL数据库常见的日志文件分类。 错误日志(Error log) 慢查询日志(Slow query log) 二进制日志 查询日志 MySQL错误日志是记录MySQL 运行过程中较为严重的警告和错误信息,以及MySQL每次启动和关闭的详细信息。
查询日志(执行过的SQL语句):因为这个的查询语句很多,会影响到系统的性能,而且时间久了,记录的日志也很大,占用服务器的资源过多,建议阶段性的开启,问题排查后,及时的关闭,线上生产环境不建议开启。(如下图)
#查看查询日志的开启情况和查询日志的存储地方 SHOW VARIABLES LIKE 'general%'; #general_log:日志功能是否开启,默认关闭OFF #general_log_file:日志文件保存位置 #开启查询日志 SET GLOBAL general_log='ON'; #关闭查询日志 SET GLOBAL general_log='OFF'; #开启和关闭正常情况下不需要重启MySQL服务(看情况重启MySQL服务 service mysqld restart) #开启之后就可以观察(tail -f /usr/local/mysql/data/localhost.log )
MySQL的慢日志:
#查看查询日志的开启情况和查询日志的存储地方 SHOW VARIABLES LIKE 'slow_query%'; SHOW VARIABLES LIKE 'long_query_time'; +---------------------------+--------------------------------------------+ | Variable_name | Value | +---------------------------+--------------------------------------------+ | slow_query_log | OFF | | slow_query_log_file | /usr/local/mysql/data/localhost-slow.log | +---------------------------+--------------------------------------------+ #slow_query_log 慢查询开启状态 #slow_query_log_file 慢查询日志存放的位置(这个目录需要MySQL的运行帐号的可写权限,一般设置为MySQL的数据存放目录) #long_query_time 查询超过多少秒才记录(默认10秒) #开启慢查询日志 SET GLOBAL slow_query_log='ON'; #如果想更改慢日志的存储地方的话(读写权限) set GLOBAL slow_query_log_file='/usr/local/mysql/data/dodo-slow.log'; #查询超过1秒就记录 set GLOBA long_query_time=1; #关闭查询日志 SET GLOBAL general_log='OFF'; #开启和关闭正常情况下不需要重启MySQL服务(看情况重启MySQL服务 service mysqld restart) #开启之后就可以观察(tail -f /usr/local/mysql/data/localhost-slow.log ) #执行一条慢查询SQL语句 select sleep(2);
不要给自己找客观的理由,你没做好,就是没做好,责无旁贷。什么工期紧张,什么需求变动,什么快速迭代,什么没做优化沉淀,什么疏忽遗漏,什么数据量小,那都不是事,不是自己摆脱罪名的借口和聊以慰藉的狗皮膏药。
不要为自己的懒惰和庸碌找借口了。加油吧,你是最菜的。
——我的人生是一栋只能建造一次的楼房,我必须让他精确无比,不能有一厘米差池——所以,我太紧张,害怕行差步错。 ——任何一栋建筑都允许存在合理范围内的误差,我这一厘米不足以让你的大楼崩塌。 -----为毛我突然想到了这个#陈孝正#
随后阿里云发表了一篇故障说明,说明中阿里云表示:对于这次故障,没有借口,我们不能也不该出现这样的失误!我们将认真复盘改进自动化运维技术和发布验证流程,敬畏每一行代码,敬畏每一份托付。
相关阅读
- 通过Google API客户端访问Google Play帐户报告PHP库
- PHP执行文件的压缩和解压缩方法
- 消息中间件MQ与RabbitMQ面试题
- 如何搭建一个拖垮公司的技术架构?
- Yii2中ElasticSearch的使用示例
热门文章
- 通过Google API客户端访问Google Play帐户报告PHP库
- PHP执行文件的压缩和解压缩方法
- 消息中间件MQ与RabbitMQ面试题
- 如何搭建一个拖垮公司的技术架构?
- Yii2中ElasticSearch的使用示例
最新文章
- 通过Google API客户端访问Google Play帐户报告PHP库
- PHP执行文件的压缩和解压缩方法
- 消息中间件MQ与RabbitMQ面试题
- 如何搭建一个拖垮公司的技术架构?
- Yii2中ElasticSearch的使用示例