随笔分类 -  MySQL

摘要:使用pstack, strace工具,结合源码分析与官方文档,最终找到根本原因 阅读全文
posted @ 2020-05-12 17:42 Johnliu2008 阅读(846) 评论(0) 推荐(0)
摘要:问题描述: 同事在给jiradb做mysqldump时,发现dump出来的文件只有10MB左右,而ibd文件占用磁盘空间100MB左右。 最初,我们猜测可能是delete操作导致了大量的磁盘碎片,以及二级索引占用了很多空间。 但是对比了data_length+index_length+data_fr 阅读全文
posted @ 2020-05-12 16:00 Johnliu2008 阅读(1821) 评论(0) 推荐(0)
摘要:gh-ost,是github开源的一款在线修改MySQL表结构的工具https://github.com/github/gh-ost/,它不使用pt-osc的触发器机制,而是使用解析binlog来实现将增量数据复制到新表。 最近我抽空了解了一下它的源码,结合debug日志,整理出它的过程,如下: 1 阅读全文
posted @ 2020-04-29 17:51 Johnliu2008 阅读(708) 评论(0) 推荐(0)
摘要:sysbench使用utf8mb4测试: 在进一步测试的时候,我修改了/usr/share/sysbench/oltp_common.lua脚本的如下部分,使之在建立数据库连接的时候执行"SET NAMES utf8mb4"(用途请参考https://dev.mysql.com/doc/refman 阅读全文
posted @ 2020-03-15 15:07 Johnliu2008 阅读(1914) 评论(3) 推荐(0)
摘要:与数据库打过交道的人,大多都知道:长时间未提交的事务,会导致更多的锁冲突,而且也会导致主从复制的延时高。 针对这个问题,我曾经想过,能否通过分析slow query log来定位? 首先,我从官方文档中看到如下描述: PropertyValue Command-Line Format --long- 阅读全文
posted @ 2020-03-08 16:04 Johnliu2008 阅读(438) 评论(0) 推荐(0)
摘要:DML操作的大致流程 在解答上述疑惑之前,我们来梳理一下DML操作的大致流程: 1、语法解析、语义解析 2、生成执行计划 3、事务修改阶段 1) 激活事务,事务状态由not_active变为active 2) 查找定位数据 3) 乐观插入 4) 记录insert相关的undo记录,并将undo记录的 阅读全文
posted @ 2020-02-26 16:59 Johnliu2008 阅读(900) 评论(0) 推荐(1)
摘要:索引结构概述: MyISAM索引文件和数据文件是分离的,索引文件仅保存数据记录的地址。这与Oracle的索引结构相似,比较好理解。那么,常用的Innodb聚集索引结构是怎样的呢? InnoDB的数据文件本身(.ibd文件)就是索引文件。在InnoDB中,表数据文件本身就是按B+Tree组织的一个索引 阅读全文
posted @ 2019-12-25 14:53 Johnliu2008 阅读(1269) 评论(0) 推荐(0)