[root@localhost ~]# egrep "slow_query_log*|long_query_time|slow-query-log-file" /usr/local/mysql5.6/my.cnf

long_query_time = 1  (慢查询时间)

slow_query_log=1

slow-query-log-file = /data/mysql3307/log/mysql-slow.log

log_queries_not_using_indexes=1 (#记录没有使用索引的查询)

在mysql控制台修改,无需重启mysqld服务:

#开启慢查询日志记录

mysql> set global slow_query_log=on;

Query OK, 0 rows affected (0.00 sec)

#查询时间超过0.1秒的sql语句会被记录

mysql> set global long_query_time=0.1;

Query OK, 0 rows affected (0.03 sec)

#记录慢查询日志的文件地址

mysql> set global slow_query_log_file="/var/lib/mysql/localhost-slow.log";

Query OK, 0 rows affected (0.04 sec)

#记录没有使用索引的查询

mysql> set global log_queries_not_using_indexes=on;

Query OK, 0 rows affected (0.00 sec)

创建联合索引:

SELECT `user_id`,COUNT(id) AS num,MAX(login_time) AS last_login_time FROM `tab_user_login_record` WHERE `login_time` BETWEEN 1501862400 AND 1503158399 GROUP BY user_id;

原先表字段user_id,login_time创建的都是单个索引,

SELECT `user_id`,COUNT(id) AS num,MAX(login_time) AS last_login_time FROM `tab_user_login_record` WHERE `login_time` BETWEEN 1501862400 AND 1503158399 GROUP BY

执行查询花费是时间为3.2s

记录到慢查询日志中:

[root@localhost ~]# tailf /data/mysql3307/log/mysql-slow.log

# Time: 170913 15:57:05

# User@Host: root[root] @ localhost []  Id:    12

# Query_time: 2.523547  Lock_time: 0.000160 Rows_sent: 18760  Rows_examined: 1742609

SET timestamp=1505289425;

SELECT `user_id`,COUNT(id) AS num,MAX(login_time) AS last_login_time FROM `tab_user_login_record` WHERE `login_time` BETWEEN 1501862400 AND 1503158399 GROUP BY user_id;

# Time: 170913 15:57:27

# User@Host: root[root] @ localhost []  Id:    12

# Query_time: 2.501662  Lock_time: 0.000149 Rows_sent: 18760  Rows_examined: 1742609

SET timestamp=1505289447;

SELECT `user_id`,COUNT(id) AS num,MAX(login_time) AS last_login_time FROM `tab_user_login_record` WHERE `login_time` BETWEEN 1501862400 AND 1503158399 GROUP BY user_id;

给字段创建联合索引:

create index union_index on tab_user_login_record (user_id,login_time);

清除查询缓存:

reset query cache;

SELECT `user_id`,COUNT(id) AS num,MAX(login_time) AS last_login_time FROM `tab_user_login_record` WHERE `login_time` BETWEEN 1501862400 AND 1503158399 GROUP BY

花费的时间是0.62秒

[root@localhost ~]# tailf /data/mysql3307/log/mysql-slow.log

没有再记录到慢查询日志文件中

分析慢查询日志mysqlsla:

[root@localhost ~]# mysqlsla -lt slow /data/mysql3307/log/mysql-slow.log -sf "+SELECT" -top 2 -sort t_sum

Report for slow logs: /data/mysql3307/log/mysql-slow.log

6 queries total, 1 unique

Sorted by 't_sum'

Grand Totals: Time 17 s, Lock 0 s, Rows sent 112.56k, Rows Examined 10.46M

______________________________________________________________________ 001 ___

Count         : 6  (100.00%)

Time          : 16.583032 s total, 2.763839 s avg, 2.501662 s to 4.005698 s max  (100.00%)

Lock Time (s) : 1.774 ms total, 296 μs avg, 149 μs to 954 μs max  (100.00%)

Rows sent     : 18.76k avg, 18.76k to 18.76k max  (100.00%)

Rows examined : 1.74M avg, 1.74M to 1.74M max  (100.00%)

Database      : s2166ptzy

Users         :

root@localhost  : 100.00% (6) of query, 100.00% (6) of all users

Query abstract:

SELECT user_id,COUNT(id) AS num,MAX(login_time) AS last_login_time FROM tab_user_login_record WHERE login_time BETWEEN N AND N GROUP BY user_id;

Query sample:

SELECT `user_id`,COUNT(id) AS num,MAX(login_time) AS last_login_time FROM `tab_user_login_record` WHERE `login_time` BETWEEN 1501862400 AND 1503158399 GROUP BY user_id;

转载于:https://blog.51cto.com/wujianwei/1964987

mysql5.6.20开启慢查询日志以及创建索引优化慢查询相关推荐

  1. mysql 慢查询日志的设置与优化

    目录 1 引言 2 慢查询日志配置 3 分析工具 1 引言 MySQL数据中有记录慢查询的一种手段.并且是MySQL自带的.可用来排查那些查询sql语句执行得慢.从而给开发者提供一个调优得依据. My ...

  2. MySQL第九章索引_MySQL高级(索引优化+慢查询定位)

    一.先谈谈事务 1. ACID特性 1.1 原子性: 事务是最小的执行单位,不允许分割.事务的原子性确保动作要么全部完成,要么完全不起作用: 1.2 一致性: 执行事务前后,数据库从一个一致性状态转换 ...

  3. SQL39 针对salaries表emp_no字段创建索引idx_emp_no,查询emp_no为10005,使用强制索引。

    描述 针对salaries表emp_no字段创建索引idx_emp_no,查询emp_no为10005,使用强制索引. CREATE TABLE salaries ( emp_no int(11) N ...

  4. 希冀平台1-5:针对salaries表emp_no字段创建索引idx_emp_no,查询emp_no为10005, 使用强制索引。 CREATE TABLE `salaries` ( `emp_no`

    希冀平台1-5:针对salaries表emp_no字段创建索引idx_emp_no,查询emp_no为10005, 使用强制索引. CREATE TABLE salaries ( emp_no SEL ...

  5. mysql慢查询日志分析工具比较_MySQL慢查询日志总结 日志分析工具mysqldumpslow

    慢查询日志概念 MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志 ...

  6. mysql慢查询日志默认在哪里_MySQL 慢查询日志

    慢查询日志概念 MySQL 的慢查询日志是 MySQL 提供的一种日志记录,它用来记录在 MySQL 中查询响应时间超过阈值的语句,具体指响应时间超过 long_query_time 值的 SQL,会 ...

  7. SQL 性能优化梳理 —— 基本概念、创建时优化、查询时优化

    点击上方"朱小厮的博客",选择"设为星标" 后台回复"加群"获取公众号专属群聊入口 来源:rrd.me/fVJw6 前言 本文主要针对的是关 ...

  8. liunx导出mysql慢查询日志查看_查看 MySQL 慢查询日志文件-问答-阿里云开发者社区-阿里云...

    查看 MySQL 是否启用了慢 SQL 查询: 查看慢 SQL 日志是否启用. mysql> show variables like 'log_slow_queries'; +--------- ...

  9. 数据库-优化-从慢查询日志中分析索引使用情况及pt-find

    8.查找数据库表中重复的索引 pt-duplicate-key-checker --host=localhost --user=root --password=123456 9.查看mysql表和文件 ...

最新文章

  1. 自己动手写简单的web应用服务器(4)—利用socket实现文件的下载
  2. restTemplate的介绍和使用
  3. 形而上者谓之道,形而下者谓之器
  4. XmlResourceParser android.content.pm.ProviderInfo.loadXmlMetaData(android.content.pm.PackageManager,
  5. 2019最新Python爬虫高频率面试题总结(一)
  6. AlexNet原理及tensorflow实现
  7. 敏感词库php数组,PHP 实现敏感词 / 停止词 过滤(附敏感词库),敏感类词语大全...
  8. 2013Esri中国用户大会,show应用,赢大奖--获奖名单公布!
  9. 14-模板方法模式Quarkus实现
  10. 简单的VB进度条程序
  11. 2018北京网络赛B题 Tomb Raider
  12. 回溯法之旅行商问题解题思路详解
  13. 解除操作系统宽带限制
  14. Solidworks二次开发平台 --- RyS.SwWorks [2015-09-18更新]
  15. 计算机英语测试,计算机专业英语测试
  16. Ubuntu18.04使用Carla导入RoadRunner自建地图并使用
  17. Linux 内核构建
  18. 接口管理工具Yapi禁用注册功能的配置解决方案
  19. Qt mouseMoveEvent不执行情况
  20. 好用的 word 生成 ftl 模板

热门文章

  1. Visual C++ 运行库合集
  2. vs2010 C#链接 ACCESS数据库
  3. UTF8,Unicode 的区别(zt)
  4. 大数据_Flink_Java版_ProcessFunction(4)_应用案例_高低温分流---Flink工作笔记0069
  5. AndroidStudio_android使用自己封装的消息队列处理问题_封装LinkedQueue---Android原生开发工作笔记242
  6. uview中使用_使用uniapp自带的地图_实现地图点选位置功能---基于Vue的uniapp手机端_前端UI_uview工作笔记006
  7. 清理日志文件尝试有效哦
  8. enum关键字——C语言深度剖析
  9. 百度实习笔试题(2012.5.6)
  10. nginx redis mysql_Nginx + Lua + Kafka + Redis + Mysql