MySQL
文章平均质量分 95
介绍 MySQL 数据库的方方面面,包括机制、原理、使用技巧、源码分析等。
dbkernel
目前从事云数据库MySQL数据库内核研发工作,曾做过Postgres-XC、Greenplum等分布式数据库的内核开发。热衷于研究主流数据库架构、源码,对关系型数据库 MySQL/PostgreSQL及分布式数据库有深入研究。
展开
-
特性介绍 | MySQL生态现有计算下推方案汇总
计算下推是数据库优化器优化查询性能的一种常见手段,早期的数据库系统提及的计算下推一般是指谓词下推,其理论源自关系代数理论。2000 年以后,随着 Oracle RAC 的盛行以及一众开源分布式数据库的崛起,存算分离的概念逐步流行,计算下推的涵盖范围由此从基本的谓词+投影下推延伸到了数据库所支持的一切可能计算的下推(JOIN、聚合、完整 query、部分 query 等)。原创 2024-03-18 11:15:09 · 952 阅读 · 1 评论 -
问题分析 | 为什么主库Waiting for semi-sync ACK from slave会阻塞set global super_read_only=ON的执行
在 MDL 中 MDL_KEY 按照 namespace+DB+OBJECT_NAME 的方式进行表示,所谓的 namespace 也比较重要,调用 Global_read_lock::lock_global_read_lock 函数的其他位置与事务提交没太大关系,应与此无关。申请的 S 模式的 MDL_key::GLOBAL 锁,查阅手册(二、如果主库执行的是事务型的语句,比如。进程,之后在主库执行的新事务会处于。锁,S 模式,这两种模式是冲突的,状态的事务还未提交,也就未释放。原创 2024-03-18 10:38:28 · 1050 阅读 · 0 评论 -
捉虫日记 | MySQL 8.0从库某些情况下记录重放的CREATE TABLE、DROP TABLE语句到慢日志(slow log)
当主从复制采用 binlog 的行模式时,如果从库启用 slow_query_log、log_slow_replica_statements 且从库重放 CREATE TABLE、DROP TABLE 时因特殊情况(比如被从库其他 SQL 占用 MDL 锁)执行耗时较长,会被从库记录到慢日志(slow log),而 ALTER TABLE 却不会被记录到慢日志。按照官方的描述,在 binlog_format 是行模式的情况下,即使启用。相关的 Bug Fix,说明该问题官方尚未修复。原创 2024-03-18 09:44:45 · 788 阅读 · 0 评论 -
特性介绍 | MySQL测试框架 MTR 系列教程(四):语法篇
作者:卢文双 资深数据库内核研发以前对 MySQL 测试框架 MTR 的使用,主要集中于 SQL 正确性验证。近期由于工作需要,深入了解了 MTR 的方方面面,发现 MTR 的能力不仅限于此,还支持单元测试、压力测试、代码覆盖率测试、内存错误检测、线程竞争与死锁等功能,因此,本着分享的精神,将其总结成一个系列。本文是第四篇语法篇。原创 2023-07-06 23:23:37 · 446 阅读 · 0 评论 -
源码分析 | MySQL测试框架 MTR 系列教程(三):源码篇
作者:卢文双 资深数据库内核研发以前对 MySQL 测试框架 MTR 的使用,主要集中于 SQL 正确性验证。近期由于工作需要,深入了解了 MTR 的方方面面,发现 MTR 的能力不仅限于此,还支持单元测试、压力测试、代码覆盖率测试、内存错误检测、线程竞争与死锁等功能,因此,本着分享的精神,将其总结成一个系列。本文是第三篇源码篇。原创 2023-07-06 23:17:37 · 503 阅读 · 0 评论 -
特性介绍 | MySQL 测试框架 MTR 系列教程(二):进阶篇 - 内存/线程/代码覆盖率/单元/压力测试
以前对 MySQL 测试框架 MTR 的使用,主要集中于 SQL 正确性验证。近期由于工作需要,深入了解了 MTR 的方方面面,发现 MTR 的能力不仅限于此,还支持单元测试、压力测试、代码覆盖率测试、内存错误检测、线程竞争与死锁等功能,因此,本着分享的精神,将其总结成一个系列。主要内容如下:- 入门篇:工作机制、编译安装、参数、指令示例、推荐用法、添加 case、常见问题、异常调试- 进阶篇:高阶用法,包括单元测试、压力测试、代码覆盖率测试、内存错误检测、线程竞争与死锁- 源码篇- 语法篇原创 2023-05-07 21:28:13 · 318 阅读 · 1 评论 -
特性介绍 | MySQL 测试框架 MTR 系列教程(一):入门篇
作者:卢文双 资深数据库内核研发以前对 MySQL 测试框架 MTR 的使用,主要集中于 SQL 正确性验证。近期由于工作需要,深入了解了 MTR 的方方面面,发现 MTR 的能力不仅限于此,还支持单元测试、压力测试、代码覆盖率测试、内存错误检测、线程竞争与死锁等功能,因此,本着分享的精神,将其总结成一个系列。主要内容如下:入门篇:机制、编译安装、参数、指令、推荐用法、添加 case、异常调试进阶篇:高阶用法,包括单元测试、压力测试、代码覆盖率测试、内存错误检测、线程竞争与死锁源码篇语法篇原创 2023-04-17 13:42:59 · 677 阅读 · 1 评论