MySQL:如何快速的查看Innodb数据文件
欢迎关注我的《深入理解MySQL主从原理 32讲 》,如下: 注意:本文输出格式全是16进制格式。 经常有朋友问我一些如何查看Innodb数据文件的问题比如: 如果我是UTF8字符集,如果插入字符‘a’到底占用几个字节 ?主键和普通索引叶子节点的行数据在存储上有哪些区别?如何证明rowid的存在?数据中的NULL值如何存储的?char和varchar在存储上的区别?…… 如果要
MySQL:slave_skip_errors参数对MGR可用性的影响
整个问题提出和测试由 @gc @甘露寺的姑子@乙酉 完成,文档记录由@gc @乙酉完成。 我只是进行了问题分析和文档整理 欢迎关注我的《深入理解MySQL主从原理 32讲 》,如下: 一、案例描述MGR在遇到表不存在的情况下,节点没有退出节点而是爆出一个警告,并且节点状态也正常,警告如下: 2019-10-17T21:16:11.564211+08:00 10 [Warning
随笔:MySQL:eq_range_index_dive_limit 索引下探接口
我的测试记录 一、概述这个参数会影响到执行计划在评估的时候到底使用统计数据还是进行实际的所以你访问,那么很显然如下: 使用统计数据生成执行计划的效率更高。使用索引实际访问,及索引下探会代价更高但是更加准确。 具体的参数含义见官方文档:Equality Range Optimization of Many-Valued Comparisons 0 :始终使用索引下探的方式。1
MySQL:产生大量小relay log的故障一例
能力有限有误请谅解,源码版本5.7.22 欢迎关注我的《深入理解MySQL主从原理 32讲 》,如下: 一、案例来源和现象这个案例是朋友@peaceful遇到的线上问题,最终线索也是他自己找到的。现象如下: 1、出现了大量很小的relay log如下,堆积量大约2600个:... -rw-r----- 1 mysql dba 12827 Oct 11 12:28 mysq
MySQL:关于Bug #81119
修复版本5.7.18,下面是commit,记录一下后面详细学习。 故障 下面是commit $ git show a43f7d5a6130550619afad3fb513c98e00dc505e commit a43f7d5a6130550619afad3fb513c98e00dc505e Author: Daogang Qu <bill.qu@oracle.com>
MySQL:一个innodb_thread_concurrency设置不当引发的故障
一、问题来源欢迎关注我的《深入理解MySQL主从原理 32讲 》,如下: 这是一个朋友问我的典型案例。整个故障现象表现为,MySQL数据库频繁的出现大量的请求不能响应。下面是一些他提供的证据: 1、show processlist从状态信息来看出现如下情况: insert操作:状态为update update/delete操作:状态为updatingselect操作:状态为sendi
随笔:MySQL:双主情况下跳过Event的方式
简单记录如下: 双主情况下跳过相同server id Event的方式: IO线程 通过对比SERVER_ID 进行跳过操作 { mi->set_master_log_pos(mi->get_master_log_pos() + inc_pos); memcpy(rli->ign_master_log_name_end, mi->
MySQL:FTWRL一个奇怪的堵塞现象和堵塞总结
本案例由徐晨亮提供,并且一起探讨。 本文中FTWRL = “flush table with read lock” 关于常用操作加MDL LOCK锁类型参考文章:http://blog.itpub.net/7728585/viewspace-2143093/ 欢迎关注我的《深入理解MySQL主从原理 32讲 》,如下: 一、两个不同的现象首先建立一张有几条数据的表就可以了,我这
MySQL 字符串转double转换栈帧(可能丢失精度)
简单记录栈帧以备后用 欢迎关注我的《深入理解MySQL主从原理 32讲 》,如下: 一、转换案例最近有朋友讨论字符串转换double丢失精度的问题案例如下: 本案例来自朋友徐晨亮 root@mysqldb 22:12: [xucl]> show create table t1\G *************************** 1. row ********
MySQL 8部分新特性(8.0.17)
参考官方文档,记录了部分我关注的新特性。本文仅仅是大概记录而已,准确描述参考官方文档: MySQL 8.0 Reference Manual 数据字典使用事务性存储引擎。以前版本数据字典存储在文件或者非事务引擎表中参考第14节。支持原子性DDL,进行原子性的数据库字典更新,并且binlog的写入和DDL操作为同一个原子性事务。参考13.1.1节升级过程,安装新版本后自动进行升级操作,而不需
第28节 从库Seconds_Behind_Master延迟总结
从库Seconds_Behind_Master延迟总结 注意:本文是《深入理解MySQL主从原理 32节》的第28节 到这里本系列已经接近尾声了,是时候对常见引起主从延迟的情形进行一个总结了。我想如果我一开始就把这些情形拿出来也许大家对具体的原因不是那么清楚,但是经过本系列的学习,我相信当我说起这些情形的时候大家都很清楚它的原因了。当然如果还有其他造成延迟的情形也欢迎大家一起讨论。 一、
随笔:MySQL 查询事务状态字段说明
今天一个朋友想查看一下的MySQL层事务提交状态经历的过程,比如我们常说的prapare flush sync commit 几个阶段,但是找了一下发现视乎没有视图可以看到一共看了3个地方: information_schema.INNODB_TRX 的trx_state字段information_schema.INNODB_TRX 的trx_operation_state字段perform
随笔MySQL:Searching rows for update状态解析
欢迎关注我的《深入理解MySQL主从原理 32讲 》,如下: 1、限制条件一般不能是唯一键和主键,也不能是全表,代码如下: if (used_index != MAX_KEY) //不能是唯一键(主键) 和 全表 { // Check if we are modifying a key that we are used to search with: used_key_i
第24节 从库数据查找和参数slave_rows_search_algorithms
从库数据查找和参数slave_rows_search_algorithms
随笔:MYSQL_BIN_LOG::COND_done 是什么
一、问题 是什么 欢迎关注我的《深入理解MySQL主从原理 32讲 》,如下: 二、找到影响位置整个寻找过程应该找到key_BINLOG_COND_done这个取值,然后去看他是在那里被定义到相应的mutex/cond上,然后查找mutex/cond的作用即可。 定义:static PSI_cond_info all_server_conds[]={{ &key_PAGE_
事务状态持久化
函数接口: trx_lists_init_at_db_start trx_resurrect_insert trx_resurrect_update 事物状态: /*-------------------------------------------------------------*/ #define TRX_UNDO_STATE 0 /*!< T
show processlist time负数的初探
select * from information_schema.processlist;show processlist 欢迎关注我的《深入理解MySQL主从原理 32讲 》,如下: 一、show processlist函数接口:mysqld_list_processes 栈帧: #0 mysqld_list_processes (thd=0x7ffedc008250, u
binlog 异常暴涨分析
binlog 异常暴涨分析
第16节:基于WRITESET的并行复制方式
欢迎关注我的专栏《深入理解MySQL主从原理 32讲》具体可以点击:ttps://j.youzan.com/yEY_Xi 基于COMMIT_ORDER的并行复制只有在有压力的情况下才可能会形成一组,压力不大的情况下在从库的并行度并不会高。但是基于WRITESET的并行复制目标就是在ORDER_COMMIT的基础上再尽可能的降低last commit,这样在从库获得更好的并行度(即便在主库
MySQL:从库binlog 使用mysqlbinlog stop-datetime过滤问题
更多主从同步相关可以参考我的《深入理解MySQL主从原理》专栏: 本文是一个朋友问我问题。从库使用mysqlbinlog —stop-datetime 的时候没有想要的记录。本文简单记录这个问题:如果从库log_slave_updates开启,那么从库需要记录从库应用的Event,有如下特点: 从库binlog记录的应用主库的Event,其Event header timestam