Mysql:从一个USE DB堵塞故障展开的探讨
今天一个朋友遇到数据库遇到一个严重的故障,故障环境如下:表现如下:情急之下他杀掉了一大堆线程后发现还是不能恢复,最后杀掉了一个没有及时提交的事物才恢复正常。也仅仅留下了如下图的一个截图:1.png还是回到上图,我们可以归纳一下语句类型如下:三、信息分析关于sending data这个...
Innodb:RR隔离级别下insert...select 对select表加锁模型和死锁案列
最近有网友遇到了在RR隔离级别下insert A select B where B.COL=** 由于select表也就是B表引发的死锁的问题。分析死锁日志后,笔者进行模拟重现了这位网友遇到了2种场景并且在本文中进行详细的描述。本文使用版本percona 5.7.14修改版,能够打印出事务所有的行锁信息结构链(不包含隐含锁)本文中的测试是在RR...
定位空闲会话事务没提交导致锁阻塞的脚本
---- 查看事务锁阻塞线程和等待线程SELECT r.trx_id AS waiting_trx_id,r.`trx_mysql_thread_id` AS waiting_thread, TIMESTAMPDIFF(SECOND,r.trx_wait_started,CURRENT_TIMESTAMP) AS wait_time, r.`trx_query` AS waiting_query,l.`lock_tab...
(何凳成博客)MySQL 加锁处理分析——学习笔记
1. 准备测试数据use test;CREATE TABLE t1(id int,name varchar(20));alter table t1 add primary key(id);insert into t1 values(1,'a'),(4,'c'),(7,'b'),(10,'a'),(20,'d'),(30,'b');2. 执行测试set global tx_isolation='read-committed';set session tx_isolation='read-committed';select @@global.tx_...
innodb行锁对象mutext争用导致LINUX内核态CPU使用率高诊断
MSYQL 版本:mysql> select version()\G*************************** 1. row***************************version(): 5.6.27-log1 row in set (0.00 sec) 1. 测试数据如下mysql> select * from t1;+------+------+| id | name |+------+------+| &nbs...
【MySQL】sync_binlog innodb_flush_log_at_trx_commit 浅析
innodb_flush_log_at_trx_commit和sync_binlog 两个参数是控制MySQL 磁盘写入策略以及数据安全性的关键参数。本文从参数含义,性能,安全角度阐述两个参数为不同的值时对db 性能,数据的影响.
通过performance_schema视图和sys视图定位使用磁盘文件导致IO很高的SQL
思路:1. 执行测试的语句,使用 TOP 查看操作系统的性能状态2. iostat3. iotop4. 通过 performance_schema 中的 events_waits_summary_global_by_event_name 表的 等待时间排序找出 TOP 等待事件。 或通过 sys 库中的 io_global_by_wait_by_latency 表找出 TOP 等待事件...
使用Performance Schema 诊断磁盘IO很高的问题
--运行基准测试,-w5 表示5个数据仓库、-c5 表示5个并发线程、-r30 表示预热30秒、-l1300表示基准测试进行1300秒。[root@oradb tpcc-mysql-master]# ./tpcc_start -h127.0.0.1 -d tpcc1000 -u root -p "" -w5 -c5 -r30 -l300./tpcc_start: /usr/lib64/libmysqlclient.so.18: no version information available (required...
【工具】TPCC-MySQL 测试结果详解
TPCC-MySQL输出结果详解前面的一篇文章介绍了测试工具tpcc-mysql的安装与使用,奈何网上基本没有对于tpcc-mysql 结果的分析,本文介绍如何对测试结果进行分析:一 测试例子[root@rac1 tpcc-mysql]# tpcc_start &nb...
通过performance_schema视图和sys视图定位使用磁盘文件导致IO很高的SQL
思路:1. 执行测试的语句,使用 TOP 查看操作系统的性能状态2. iostat3. iotop4. 通过 performance_schema 中的 events_waits_summary_global_by_event_name 表的等待时间排序找出 TOP 等待事件。 或通过 sys 库中的 io_global_by_wait_by_latency 表找出 TOP 等待事件5. 查...
innodb 事务锁研究
1. select * for update 语句添加的是排他行锁。 2. select ... from table_name where ... forupdate 语句在行计划使用索引常量查找或索引范围扫描时(索引覆盖查询的情况下)会在主键上添加排他行锁。 3. select .. for update 语句使用全索引扫描时,在使用覆盖索引的情况下也会对主键的所...
innodb保护行锁对象的mutext争用导致LINUX内核态CPU使用率高诊断
MSYQL 版本:mysql> select version()\G*************************** 1. row***************************version(): 5.6.27-log1 row in set (0.00 sec) 1. 测试数据如下mysql> select * from t1;+------+------+| id | name |+------+------+| &nbs...
通过查询日志定位持有锁的SQL语句
MYSQL 版本:mysql> select version();+------------+| version() |+------------+| 5.6.27-log |+------------+1 row in set (0.00 sec)1. 启用查询日志mysql> SET GLOBAL general_log=1;Query OK, 0 rows affected (0.02 sec)mysql> show variables like 'general_log%';+------------------+----...
从MYSQL查查询日志中过滤出一个小时的慢查询日志并找出 TOP SQL
从MYSQL查查询日志中过滤出一个小时的慢查询日志并找出 TOP SQL
在LINUX平台配置 MSYQL 支持大页内存
操作系统: [root@oradb ~]# cat /etc/redhat-release Red Hat Enterprise Linux Server release 6.4 (Santiago)数据库:mysql> select version();+-----------+| version() |+-----------+| 5.6.27 |+-----------+1 row in set (0.00 sec)在这个测试中我们设置400MB的大页内存给 MYSQL使用...