mysql5.6.20开启慢查询日志以及创建索引优化慢查询
[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开启慢查询日志以及创建索引优化慢查询相关推荐
- mysql 慢查询日志的设置与优化
目录 1 引言 2 慢查询日志配置 3 分析工具 1 引言 MySQL数据中有记录慢查询的一种手段.并且是MySQL自带的.可用来排查那些查询sql语句执行得慢.从而给开发者提供一个调优得依据. My ...
- MySQL第九章索引_MySQL高级(索引优化+慢查询定位)
一.先谈谈事务 1. ACID特性 1.1 原子性: 事务是最小的执行单位,不允许分割.事务的原子性确保动作要么全部完成,要么完全不起作用: 1.2 一致性: 执行事务前后,数据库从一个一致性状态转换 ...
- 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 ...
- 希冀平台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 ...
- mysql慢查询日志分析工具比较_MySQL慢查询日志总结 日志分析工具mysqldumpslow
慢查询日志概念 MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志 ...
- mysql慢查询日志默认在哪里_MySQL 慢查询日志
慢查询日志概念 MySQL 的慢查询日志是 MySQL 提供的一种日志记录,它用来记录在 MySQL 中查询响应时间超过阈值的语句,具体指响应时间超过 long_query_time 值的 SQL,会 ...
- SQL 性能优化梳理 —— 基本概念、创建时优化、查询时优化
点击上方"朱小厮的博客",选择"设为星标" 后台回复"加群"获取公众号专属群聊入口 来源:rrd.me/fVJw6 前言 本文主要针对的是关 ...
- liunx导出mysql慢查询日志查看_查看 MySQL 慢查询日志文件-问答-阿里云开发者社区-阿里云...
查看 MySQL 是否启用了慢 SQL 查询: 查看慢 SQL 日志是否启用. mysql> show variables like 'log_slow_queries'; +--------- ...
- 数据库-优化-从慢查询日志中分析索引使用情况及pt-find
8.查找数据库表中重复的索引 pt-duplicate-key-checker --host=localhost --user=root --password=123456 9.查看mysql表和文件 ...
最新文章
- 自己动手写简单的web应用服务器(4)—利用socket实现文件的下载
- restTemplate的介绍和使用
- 形而上者谓之道,形而下者谓之器
- XmlResourceParser android.content.pm.ProviderInfo.loadXmlMetaData(android.content.pm.PackageManager,
- 2019最新Python爬虫高频率面试题总结(一)
- AlexNet原理及tensorflow实现
- 敏感词库php数组,PHP 实现敏感词 / 停止词 过滤(附敏感词库),敏感类词语大全...
- 2013Esri中国用户大会,show应用,赢大奖--获奖名单公布!
- 14-模板方法模式Quarkus实现
- 简单的VB进度条程序
- 2018北京网络赛B题 Tomb Raider
- 回溯法之旅行商问题解题思路详解
- 解除操作系统宽带限制
- Solidworks二次开发平台 --- RyS.SwWorks [2015-09-18更新]
- 计算机英语测试,计算机专业英语测试
- Ubuntu18.04使用Carla导入RoadRunner自建地图并使用
- Linux 内核构建
- 接口管理工具Yapi禁用注册功能的配置解决方案
- Qt mouseMoveEvent不执行情况
- 好用的 word 生成 ftl 模板
热门文章
- Visual C++ 运行库合集
- vs2010 C#链接 ACCESS数据库
- UTF8,Unicode 的区别(zt)
- 大数据_Flink_Java版_ProcessFunction(4)_应用案例_高低温分流---Flink工作笔记0069
- AndroidStudio_android使用自己封装的消息队列处理问题_封装LinkedQueue---Android原生开发工作笔记242
- uview中使用_使用uniapp自带的地图_实现地图点选位置功能---基于Vue的uniapp手机端_前端UI_uview工作笔记006
- 清理日志文件尝试有效哦
- enum关键字——C语言深度剖析
- 百度实习笔试题(2012.5.6)
- nginx redis mysql_Nginx + Lua + Kafka + Redis + Mysql