利用performance_schema进行故障诊断(mysql金字塔法则读书笔记)
instrunments:生产者,用于采集mysql中各种操作产生的事件信息,对应配置表中的配置项,我们可以称之为采集配置项。consumers:消费者,对应的消费者用于存储来自instruments采集的数据,对应配置表的配置项,我们可以称之为消费存储配置项。启用所有等待事件的instruments:use performance_schemaupdate setup_instrum
MySQL 5.7中对XA支持的改进(摘选)
介绍 XA代表“扩展架构”,是The Open Group创建的用于分布式事务处理的标准。MySQL 5.0是第一个支持XA的版本,到了MySQL 5.7已经去消除了主要限制问题,修复了许多bug,并增加了覆盖总体范围测试用例。背景 XA解决了当跨分布式资源情况下能在单个事务中保留ACID属性的问题。资源本身可以是其他MySQ
MySQL数据库分布式事务XA的实现原理分析
1 原理 关于MySQL数据库的分布式事务XA,分布式事务实现的原理,可见[3];关于MySQL XA的说明,可见[1][2]。 MySQL XA分为两类,内部XA与外部XA;内部XA用于同一实例下跨多个引擎的事务,由大家熟悉的Binlog作为协调者;外部XA用于跨多MySQL实例的分布式事务,需要应用层介入作为协调者(崩溃时的悬挂事务,全局提交还是回滚,需要由应用层决定,对应用层的实现要
MYSQL 对表最大ID 抢加锁时的阻塞分析
示例SQL:SELECT q.queueid FROM render.queues q WHERE q.queueid in ( SELECT max(queueid) FROM ( SELECT t.queueid FROM queues t WHERE
MYSQL 中 exists 语句执行效率变低
在ORACLE 中,我们常常推荐使用exists 来替代in,往往也能取得比较好的优化效果。在ORACLE应用迁往MYSQL的过程中,我们发现部分in 的子查询语句带到MYSQL中,其执行效率变得非常低下,这很让人觉得匪夷所思。于是,我分析了一波。 对两个表
mysql innodb 主键INT、BIGINT、VARCHAR并发插入性能对比
10个并发共插入10万行 总耗时(s) &
Leaf-分布式ID生成系统
本文摘录于https://tech.meituan.com/2017/04/21/mt-leaf.html2017年04月21日 作者: 照东 文章链接业务系统对生成全局唯一ID的要求有哪些呢?全局唯一性:不能出现重复的ID号,这是最基本的要求。趋势递增:主键的选择应该尽量使用有序的主键保证写入性能。单调递增:保证下一个ID一定大于上一个ID,例如事务版本号、IM增量消息、排序
MYSQL order by排序导致效率低小优化
有一个主表left join 同一个小表两次分页语句,因为order by 导致执行时做排序,从执行计划中Using filesort ,以及profile中creating sort index 耗时可以看出。从trace文件可以看出filesort的计算:"join_execution": { &nbs
一个left join SQL 简单优化分析
有个关联查询的sql,需要2秒多,于是进行查看一番:SELECT a.id, a.brand_id, a.series_id, a.product_id, a.material_id, a.custom_category_id, a.price, a.product_url, a.organ_id, ..... FROM pm_brand_xxxx&n
由percona-data-recovery-tool恢复ibd数据的工具的一些测试
无意间看到了percona-data-recovery-tool 这个工具,这个工具是用来恢复innodb数据文件中的数据,貌似都建议row_format必须是REDUNDANT或者COMPACT。而在mysql5.7.8以上默认为Dynamic,但其实在此处我在Dynamic下测试是没有问题的。当我们误删除某个表数据时,实际上数还存留在数据
MySQL中InnoDB锁机制介绍及一些测试
INNODB锁说明:锁机制是事务型数据库中为了保证数据的一致完整性的特性;在对MySQL进行性能调优时,往往需要重点考虑锁机制对整个事务的影响。MySQL 5.5 版本后InnoDB存储引擎已是默认存储引擎,这里重点介绍InnoDB存储引擎的锁机制。InnoDB主要使用两种级别的锁机制:行级锁和表级锁。Innodb的行级锁分为两种类型:共享锁和排他锁。而在锁机制的实现过程中为了让行级锁定和表级锁定
mysql 5.7.11查询分区表的一个问题
mysql 查询一个分区表,当查询条件存在数据时执行效率OK,当不存在数据时执行不完,一直在sending data,当去掉desc就没问题。换个版本貌似也没问题。mysql> select version();+------------+| version() |+------------+| 5.7.11-log |+------------+1 row in set (0.