为什么不记录慢速查询?
2014/8/18 13点37分收到前端说反馈有玩家掉线情况,检查CPU、慢查询、DB请求量,并未发现异常,DB表现一如往常。
㈡ 定位原因:
INSERT INTO t (col1, col2, col3, col4, col5, col6, col7) VALUES ('3532082239485507011_130_99', '130_99', 130, 99, 3532082239485507011, 2172353000317425008, 29078)
这个长事务运行 1个多小时没有退出,Kill 掉相应的进程。程序前端恢复正常
㈢ 处理思路:
⑴ 查询视图
select trx_id,trx_state,trx_started,trx_requested_lock_id,trx_weight,trx_mysql_thread_id from information_schema.innodb_trx where trx_state='RUNNING';
⑵ show engine innodb status\G; 关注Transactions部分提取SQL及事务信息
㈣ 我的疑问:
为什么这条运行了1个多小时的SQL没有被记录到慢查询日志中呢??
㈤ 原来如此:
Query_time - Lock_time > long_query_time <===记录
Query_time - Lock_time < long_query_time <===不记录
㈥ 模拟场景:
⑴ Query_time - Lock_time > long_query_time
Session_A:mysql> begin;
Query OK, 0 rows affected (0.00 sec)mysql> select emp_no,hire_date from employees where emp_no=10170 for update;
+--------+------------+
| emp_no | hire_date |
+--------+------------+
| 10170 | 1986-01-02 |
+--------+------------+
1 row in set (0.00 sec)Session_B:mysql> select emp_no,hire_date,sleep(3) from employees where emp_no=10170 for update;
过段时间在A做commit,B会运行、并被记录到slow log中:
# Time: 140818 22:37:31
# User@Host: root[root] @ localhost [] Id: 1
# Query_time: 3.049016 Lock_time: 0.018891 Rows_sent: 1 Rows_examined: 1
use employees;
SET timestamp=1408372651;
select emp_no,hire_date,sleep(3) from employees where emp_no=10170 for update;
⑵ Query_time - Lock_time < long_query_time
Session_A:mysql> begin;
Query OK, 0 rows affected (0.00 sec)mysql> select emp_no,hire_date from employees where emp_no=10170 for update;
+--------+------------+
| emp_no | hire_date |
+--------+------------+
| 10170 | 1986-01-02 |
+--------+------------+
1 row in set (0.00 sec)Session_B:mysql> select emp_no,hire_date from employees where emp_no=10170 for update;
过段时间在A做commit,B会运行、但不会被记录到slow log中
㈦ 我的收获:
我们日常做性能剖析实际上应该包含2个方面:
1)基于运行时间的分析
2)基于等待时间的分析
By water
Good Luck!
版权声明:本文博主原创文章。博客,未经同意不得转载。
转载于:https://www.cnblogs.com/gcczhongduan/p/4843208.html
为什么不记录慢速查询?相关推荐
- 浅析Entity Framework Core2.0的日志记录与动态查询条件
前言 Entity Framework Core 2.0更新也已经有一段时间了,园子里也有不少的文章.. 本文主要是浅析一下Entity Framework Core2.0的日志记录与动态查询条件 去 ...
- oracle分页查询前10条,Oracle查询前十条记录及分页查询(第5条到第10记录)
Oracle查询前10条记录及分页查询(第5条到第10记录) 如果你想了解Oracle查询前10条记录的相关实际应用方案的话,你就可以点击以下的文章对其在实际相关操作中的正确用法,有一个更加完善的认识 ...
- 实战演练 | MySQL PROCESSLIST 表和 Navicat Monitor 识别慢速查询的简单方法
通常,当数据库长时间运行较慢时,罪魁祸首往往是"坏"查询.也就是说,查询未完全优化.编写不当或使用户能够从数据库中获取无限数量的行.我们可以通过在服务器上投入更多资源来减轻一些痛苦 ...
- 327、淘宝用户浏览轨迹【逛淘宝记录】的查询设计
问题:淘宝用户浏览轨迹[逛淘宝记录]的查询设计,用MySQL存储后分库分表,怎么实现用户自己去查询个人的浏览记录. 我回答按用户id分,面试官说有问题让我再想想,我想不出来.大佬们看看用户id分会有什 ...
- JDBC实现四六级考试记录添加、查询、删除功能
JDBC实现四六级考试记录添加.查询.删除功能 1. 代码演示 2. 项目的目录结构 3. 数据库mysql 4. code 4.1 ExamTest.class package com.shan.e ...
- MySQL-快速查询的方法-索引
文章目录 前言 索引的分类 聚簇索引 唯一索引 普通索引 组合索引 InnerDB的索引数据结构B+树 B+树的查询方式 索引失效的本质 为什么要遵循最左匹配原则 明明设了索引,查询条件也有索引还是扫 ...
- WINCC SQL报警记录和变量记录数据读取查询
WINCC SQL报警记录和变量记录数据读取查询 按时间查询报警记录 用到控件为listView,textbox,progctrl,ImageComboCtrl Sub X6309X94AE1X000 ...
- 记录一下添加查询场地坐标功能中修改判断条件和画点的大小
主要是FillSolidRect函数的用法,我把它画出来的红色点改小了,更加准确 这个只是其中一个按钮,点完点之后,可以按下上下左右四个按钮来修改我们点的点的位置,让点和场地中确定的点重合,这样我们的 ...
- Oracle数据库中有关记录个数的查询
一.查询表中全部的记录个数 可用两种方法,一种是在oracle的系统表中统计,另一种需要写存储过程统计,方法分别如下. 1.系统表中统计: SELECT sum(num_rows) FROM user ...
最新文章
- Qt中openGL的四个重要事件(initializeGL() resizeGL() paintGL() pdateGL())调用规则
- Executor框架的详解(转载)
- 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1091:求阶乘的和
- 剑指offer 二进制中1的个数
- 用C#在STM32上写第一个Hello world
- 栈/队列/分块问卷调查反馈——Weak in the Middle,Cutting Plants,最小公倍数
- 服务器CPU X86 ARM PowerPC RISC介绍
- HTTP状态码大全(常见 HTTP Status Code 含义查询)
- 解决网易云音乐登录接口-460问题
- 洛谷P1878 舞蹈课 贪心 堆
- vscode修改背景
- 硬盘分区被格式化了如何恢复
- win10设置计算机关机时间,win10怎样固定时间关机_win10怎样设置电脑关机时间设置...
- html5怎么设置滚动字幕,HTML5如何设置滚动字幕?_惠州网页设计
- ElasticSearch DSL语言高级查询+SpringBoot
- 一年收购三家科技公司,金拱门不做汉堡改行人工智能了?
- 草图大师里创建动态组件_教你搞定SketchUp草图大师动态组件模型下载
- TSC MH340 打印机驱动
- 遥感IDL二次开发(大气校正)
- java对脚本语言的支持
热门文章
- Ubuntu16.04 pip3 install 报错 working_set.find(moduleOrReq) or require(str(moduleOrReq))[0]
- Git 常用操作(3)- 本地分之显示、创建、切换、合并和删除操作
- 2019.01-02 总结
- centos7samba服务的搭建
- 分类问题-样本权重(sample_weight)和类别权重(class_weight)
- 基于PyTorch的Seq2Seq翻译模型详细注释介绍(一)
- kwargs.pop是什么意思
- PyTorch: 序列到序列模型(Seq2Seq)实现机器翻译实战
- 遗传算法的简单介绍以及模式定理的简单证明
- LeetCode简单题之打折购买糖果的最小开销