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节升级过程,安装新版本后自动进行升级操作,而不需
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节 到这里本系列已经接近尾声了,是时候对常见引起主从延迟的情形进行一个总结了。我想如果我一开始就把这些情形拿出来也许大家对具体的原因不是那么清楚,但是经过本系列的学习,我相信当我说起这些情形的时候大家都很清楚它的原因了。当然如果还有其他造成延迟的情形也欢迎大家一起讨论。 一、
第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
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
MySQL:死锁一例
欢迎关注我的专栏《深入理解MySQL主从原理 32讲》 一、问题由来这是我同事问我的一个问题,在网上看到了如下案例,本案例RC RR都可以出现,其实这个死锁原因也不叫简单,我们来具体看看: 构造数据CREATE database deadlock_test; use deadlock_test; CREATE TABLE `push_token` ( `id` bigint(20
MySQL:死锁一例
欢迎关注我的专栏《深入理解MySQL主从原理 32讲》 一、问题由来这是我同事问我的一个问题,在网上看到了如下案例,本案例RC RR都可以出现,其实这个死锁原因也不叫简单,我们来具体看看: 构造数据CREATE database deadlock_test; use deadlock_test; CREATE TABLE `push_token` ( `id` bigint(20
级联slave的延迟计算和query event exe time获取方法
源码5.7.22 一、级联时间计算方式比如A->B->C那么C的延迟是计算B还是A的。因为Event的中timestamp没变,但是C计算时间差值却是以B为准。如果时钟同步的情况下,其实基本可以考虑为A的。计算方法可以参考我的《深入理解MySQL主从原理》专栏 逻辑如下: 级联中的Event依然是主库的时间,因此其延迟还是相对主库而言。 虽然apply_event_and_
级联slave的延迟计算和query event exe time获取方法
源码5.7.22 一、级联时间计算方式比如A->B->C那么C的延迟是计算B还是A的。因为Event的中timestamp没变,但是C计算时间差值却是以B为准。如果时钟同步的情况下,其实基本可以考虑为A的。计算方法可以参考我的《深入理解MySQL主从原理》专栏 逻辑如下: 级联中的Event依然是主库的时间,因此其延迟还是相对主库而言。 虽然apply_event_and_
第15节:MySQL层事务提交流程简析
本节将来解释一下MySQL层详细的提交流程,但是由于能力有限,这里不可能包含全部的步骤,只是包含了一些重要的并且我学习过的步骤。我们首先需要来假设参数设置,因为某些参数的设置会直接影响到提交流程,我们也会逐一解释这些参数的含义。本节介绍