注:原创作品,转载请注明出处
在我们的应用常有查询较慢的sql语句,开启慢查询日志记录功能,能把这些查询较慢的sql一览无余。
在my.ini配置文件中添加如下配置(这个功能mysql默认是没有开启的)
#开启记录慢查询日志,可以记录查询最慢的sql语句,long_query_time制定慢的时间,单#位为秒,log-queries-not-using-indexes是记录那些没有使用索引查询的sql语句。两个条件满足一个就会记录到慢查询日志中。
log-slow-queries = C:\Program Files\MySQL\MySQL Server 5.5\customLog\log_slow.txt
long-query-time = 1
log-queries-not-using-indexes
利用本人博客 mysql-性能调优1 中的例子,往表中插入一百万条数据,之后,执行查询语句,
mysql> select 10*count(*) from supan;
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id: 1
Current database: test
+-------------+
| 10*count(*) |
+-------------+
| 9999990 |
+-------------+
1 row in set (2.31 sec)
可见用了2.31秒,这样慢查询日志文件中就有了这个乌龟sql。
如下:
C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqld, Version: 5.5.27-log (MySQL Community Server (GPL)). started with:
TCP Port: 3306, Named Pipe: (null)
Time Id Command Argument
C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqld, Version: 5.5.27-log (MySQL Community Server (GPL)). started with:
TCP Port: 3306, Named Pipe: (null)
Time Id Command Argument
# Time: 150117 16:39:34
# User@Host: root[root] @ localhost [127.0.0.1]
# Query_time: 1.255072 Lock_time: 0.211012 Rows_sent: 1 Rows_examined: 999999
use test;
SET timestamp=1421483974;
select 10*count(*) from supan;
之后测试log-queries-not-using-indexes指标:
之前是没有在supan表name中建立索引,所以把时间调到很大8,添加log-queries-not-using-indexes 重启mysql,执行查询:
mysql> select * from supan where name = '李四';
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id: 1
Current database: test
Empty set (2.50 sec)
结果日志中存放了这个没有使用索引的记录。可以看一下日志:
C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqld, Version: 5.5.27-log (MySQL Community Server (GPL)). started with:
TCP Port: 3306, Named Pipe: (null)
Time Id Command Argument
# Time: 150117 17:11:10
# User@Host: root[root] @ localhost [127.0.0.1]
# Query_time: 1.435082 Lock_time: 0.121007 Rows_sent: 0 Rows_examined: 999999
use test;
SET timestamp=1421485870;
select * from supan where name = '李四';
我们在supan的name字段值添加索引:
CREATE INDEX index_supan_name ON supan (name);
在此执行查询:
mysql> select * from supan where name = '李四';
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id: 1
Current database: test
Empty set, 2 warnings (1.29 sec)
结果日志中没有了这个sql,因为这次查询用到了索引,可以看一下日志:
C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqld, Version: 5.5.27-log (MySQL Community Server (GPL)). started with:
TCP Port: 3306, Named Pipe: (null)
Time Id Command Argument
呵呵呵。完毕
分享到:
相关推荐
MySQL管理之道-性能调优、高可用与监控挺 有趣的东东 大家一起看看, 然后我们一起看源代码吧
MySQL性能调优与架构设计MySQL性能调优与架构设计MySQL性能调优与架构设计MySQL性能调优与架构设计MySQL性能调优与架构设计MySQL性能调优与架构设计MySQL性能调优与架构设计MySQL性能调优与架构设计
MySQL_服务器调优
为什么使用索引可以提高查询性能? 什么是事务?MySQL如何支持事务处理? 什么是主键和外键?它们之间有什么区别? 什么是数据库范式?列举一些常见的数据库范式。 什么是数据库连接池?为什么使用连接池可以...
mysql数据库性能调优
MySQL性能调优与架构设计.pdf
MySQL性能调优与架构设计 PDF图书MySQL性能调优与架构设计 PDF图书
本书以 MySQL 数据库的基础及维护为切入点,重点介绍了 MySQL 数据库应用系统的性能调优,以及高可用可扩展的架构设计。 全书共分3篇,基础篇介绍了MySQL软件的基础知识、架构组成、存储引擎、安全管理及基本的备份...
《MySQL性能调优与架构设计》书中应用到的数据库的创建脚本--书中附录部分--example数据库脚本
基于MySQL性能调优的推荐系统优化设计.pdf基于MySQL性能调优的推荐系统优化设计.pdf基于MySQL性能调优的推荐系统优化设计.pdf基于MySQL性能调优的推荐系统优化设计.pdf基于MySQL性能调优的推荐系统优化设计.pdf基于...
腾讯的当家数据库!!想看看腾讯这样的大公司使用的数据库的功能吗?本书就比较细致讲解了Mysql的高级性能,想成为MySql高手,就赶紧下载看看吧!!!
MySQL性能调优与架构设计--全册,压缩包文件,欢迎下载
资源名称:MySQL性能调优与架构设计内容简介:本书以 MySQL 数据库的基础及维护为切入点,重点介绍了 MySQL 数据库应用系统的性能调优,以及高可用可扩展的架构设计。 全书共分3篇,基础篇介绍了MySQL软件的基础...
Mycat性能调优MySQL分布式数据库中间件Mycat性能调优指南指南
mysql性能调优参数整理,我们公司搭建在云上的mysql集群,都是用这个文档进行调优,已实践。
MySQL性能调优与架构设计-简朝阳 提供4种版本 .epub .mobi .pdf .txt 可复制,非扫描图片版
MySQL性能调优与架构设计 PDF中文版全册
2021年MySQL性能调优与架构设计整理.pdf