当前搜索:

InnoDB MVCC实现原理及源码解析

1、原理介绍数据多版本(MVCC)是MySQL实现高性能的一个主要的一个主要方式,通过对普通的SELECT不加锁,直接利用MVCC读取指版本的值,避免了对数据重复加锁的过程。InnoDB支持MVCC多版本,其中RC和RR隔离级别是利用consistent read view方式支持的,即在某个时刻...
阅读(146) 评论(1)

InnoDB redo log格式-物理log

在页面上修改N个字节,可以看做物理log。包括以下几种类型:MLOG_WRITE_STRING、MLOG_8BYTES、MLOG_2BYTES、MLOG_1BYTES、MLOG_4BYTES。各种页链表指针修改以及文件头、段页内容的修改都是以这几种方式记录日志。具体格式如下:1、MLOG_2BYT...
阅读(23) 评论(0)

InnoDB数据字典--字典表加载

1、介绍在InnoDB启动时,如果是新建数据库则需初始化库,需要创建字典管理的相关信息。函数innobase_start_or_create_for_mysql调用dict_create完成此功能。即创建数据字典,因为InnoDB系统表的个数结构固定,所以初始化库的时候只需要创建这几个表的B+树即...
阅读(22) 评论(0)

InnoDB数据字典详解-系统表

1、简介InnoDB中,实际上看不到系统表。有4个最基本的系统表来存储表的元数据:表、列、索引、索引列等信息。这4个表分别是SYS_TABLES、SYS_COLUMNS、SYS_INDEXES、SYS_FIELDS。下面分别介绍2、SYS_TABLES存储所有以InnoDB为存储引擎的表,每条记录...
阅读(15) 评论(0)

InnoDB rowid管理

1、流程原理图2、讲解在innodb表中,并不是每个行记录都存有row ID,只有表定义没有主键时,才会使用rowid并作为主键。rowid的分配是全局的,所有的表都共享这个ID,即从在dict_sys->mutex锁内获取dict_sys->row_i...
阅读(28) 评论(0)

解析MySQL binlog --(6)XID_EVENT、ROTATE_EVENT、STOP_EVENT

1、XID_EVENT当事务提交时,不论是statement还是row格式的binlog都会添加一个XID_EVENT作为事务的结束。该事件记录了该事务的ID。在mysql进行崩溃恢复时根据binlog中提交的情况来决定是否提交存储引擎中prepared状态的事务。2、ROTATE_EVENT当b...
阅读(21) 评论(0)

解析MySQL binlog --(5)ROWS_EVENT:WRITE_ROWS_EVENT、UPDATE_ROWS_EVENT、DELETE_ROWS_EVENT

1、介绍对于statement格式的binlog,所有增删改的SQL语句都记录在QUERY_EVENT中,而row格式的binlog则以ROWS_EVENT格式记录对数据库的修改。ROWS_EVENT分为3种:WRITE_ROWS_EVENT、UPDATE_ROWS_EVENT、DELETE_RO...
阅读(43) 评论(0)

解析MySQL binlog --(4)TABLE_MAP_EVENT

1、简介row格式的binlog文件中,每个ROW_EVENT之前都有一个TABLE_MAP_EVENT,用于描述表的内部ID和结构定义。mysql> show binlog events in "mysql-bin.000002"; +-...
阅读(21) 评论(0)

解析MySQL binlog --(3)QUERY_EVENT

一、介绍QUERY_EVENT事件以文本的形式记录信息。当binlog格式时statement时,执行的语句都存储在QUERY_EVENT中,如下所示:mysql> show binlog events in "mysql-bin.000002&qu...
阅读(52) 评论(0)

解析MySQL binlog --(2)FORMAT_DESCRIPTION_EVENT

该格式描述事件时binlog version 4中为了取代之前版本的START_EVENT_3事件而引入的。是binlog文件的第一个事件,并在一个binlog文件中仅出现一次。具体定义:binlog-version:binlog版本mysql-server version:服务器版本create...
阅读(32) 评论(0)

解析MySQL binlog --(1)大致结构及event type

1、简介binlog以事件的形式记录数据库变更情况。通过执行show binlog events in "binlog file"命令可以查看事件mysql> show binlog events in "mysql-bi...
阅读(57) 评论(0)

Vitess User Guide - Introduction

Platform supportWe continuously test against Ubuntu 14.04 (Trusty) and Debian 8 (Jessie). Other Linux distributions should work as well.Database supp...
阅读(25) 评论(0)

MySQL连接阶段原理解析

注:connect_timeout:默认10秒,The number of seconds that the mysqld server waits for a connect packet before responding with Bad handshake. The default val...
阅读(71) 评论(0)

InnoDB update操作原理图

阅读(109) 评论(0)

InnoDB事务锁之行锁-隐式锁转换显示锁举例理解原理

阅读(58) 评论(0)

InnoDB事务锁之行锁-判断是否有隐式锁原理图

阅读(75) 评论(0)

InnoDB事务锁之行锁-insert唯一二级索引-隐式锁转换案例

1、表结构CREATE TABLE `t3` ( `id` int(11) NOT NULL, `id2` int(11) DEFAULT NULL, `id3` int(11) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `id2...
阅读(73) 评论(0)

InnoDB事务锁之行锁-insert二级唯一索引插入duplicate案例

1、表结构CREATE TABLE `t3` ( `id` int(11) NOT NULL, `id2` int(11) DEFAULT NULL, `id3` int(11) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `id2...
阅读(74) 评论(0)

InnoDB事务锁之行锁-insert加锁-隐式锁转换

阅读(99) 评论(0)

InnoDB事务锁之行锁-insert二级索引加锁原理图

下一节详细介绍row_ins_set_exclusive_rec_lock和row_ins_set_shared_rec_lock两个函数,这连个函数会处理隐式锁。
阅读(125) 评论(0)
    公告
    欢迎交流 QQ:744516037 邮箱:yanzongshuai87@126.com 声明:版权所有,欢迎转载! 转载请注明出处:/yanzongshuai
    个人资料
    专栏达人 持之以恒
    等级:
    访问量: 14万+
    积分: 3653
    排名: 1万+
    钱柜娱乐开户
    最新评论