MySQL5.6版本InnoDB存储引擎在线DDL变更的官方信息中文翻译版
三月 26, 2013 by admin · 4 Comments
5.5 InnoDB存储引擎表在线DDL
5.5.1.在线DDL概述
以前,InnoDB存储引擎表的许多DDL操作代价是非常昂贵的。许多ALTER TABLE操作的原理是通过创建新的空表,定义被要求的表选项和索引,然后逐行拷贝已存在记录到新表,在插入行时更新索引。在旧表所有行被拷贝完,旧表被删除和那新表被重命名为旧的表名。 MySQL5.5,和MySQL5.1 有了InnoDB Plugin,优化了CREATE INDEX和DROP INDEX 避免表的拷贝行为。这个特性被称为Fast index Creation。MySQL 5.6 加强ALTER TABLE操作许多方式来避免拷贝表。另外加强的允许SELECT查询和INSERT, UPDATE,和DELETE(DML)语句被处理当该表正被修改时。这些功能的组合现在被称为online DDL。
这种新的机制还意味着你可以普通加快创建和加载表和在创建表时,没有任何二级索引,然后在数据被加载后再添加二级索引的整个过程的速度。 Read more
原创文章,转载请注明: 文章地址MySQL5.6版本InnoDB存储引擎在线DDL变更的官方信息中文翻译版
MySQL数据库InnoDB存储引擎多版本控制(MVCC)实现原理分析
四月 20, 2012 by admin · 8 Comments
文/何登成
导读:
来自网易研究院的MySQL内核技术研究人何登成,把MySQL数据库InnoDB存储引擎的多版本控制(简称:MVCC)实现原理,做了深入的研究与详细的文字图表分析,方便大家理解InnoDB存储引擎实现的多版本控制技术(简称:MVCC)。
基本知识
假设对于多版本控制(MVCC)的基础知识,有所了解。MySQL数据库InnoDB存储引擎为了实现多版本的一致性读,采用的是基于回滚段的协议。
行结构
MySQL数据库InnoDB存储引擎表数据的组织方式为主键聚簇索引。由于采用索引组织表结构,记录的ROWID是可变的(索引页分裂的时候,Structure Modification Operation,SMO),因此二级索引中采用的是(索引键值, 主键键值)的组合来唯一确定一条记录。 Read more
原创文章,转载请注明: 文章地址MySQL数据库InnoDB存储引擎多版本控制(MVCC)实现原理分析
MySQL数据库之数据类型集合类型和枚举类型测试环境
三月 17, 2012 by Eugene · 3 Comments
【导读】
针对四种数据类型:布尔类型BOOL或称布尔类型BOOLEAN、微整型TINYTINT、枚举类型ENUM、集合类型SET,我们已经分多篇文章篇幅给出详细的介绍与功能测试数据,接下来我们深入介绍枚举类型EUNM和集合类型SET。测试基于InnoDB存储引擎上,对MySQL数据库集合类型SET和枚举类型ENUM的字段进行DDL变更操作,是否需要重新创建表呢?对数据库的事务处理有何影响?对数据库的数据服务提供有何性能影响?
(一) 系统环境
硬件:DELL R510 10块盘做的RAID5,上面跑了几十台虚拟机
操作系统:CentOS release 5.5 (Final)
MySQL数据库:5.5.15-log
InnoDB存储引擎:plugin-InnoDB 1.1.8
(二) 测试数据准备
1>.创建表结构的SQL命令
原创文章,转载请注明: 文章地址MySQL数据库之数据类型集合类型和枚举类型测试环境
mysql技术内幕-innodb存储引擎读书笔记(上)
三月 14, 2012 by ISADBA · 2 Comments
第一章、mysql体系结构和存储引擎
1.1、数据库和实例的区别
数据库:物理操作系统或其他形式文件类型的集合。在mysql下数据库文件可以是frm,myd,myi,ibd结尾的文件。
数据库实例:由数据库后台进程/线程以及一个共享内存区组成。
mysql数据库是但进程多线程的程序。
1.2、mysql的体系结构
mysql由连接池组件、管理服务和工具组件、sql接口组建、查询分析器组件、优化器组件、缓存组件、插件是存储引擎、物理文件。
示意图见书:P4.
1.3、mysql存储引擎 Read more
原创文章,转载请注明: 文章地址mysql技术内幕-innodb存储引擎读书笔记(上)
MySQL数据库分布式事务XA的实现原理分析
二月 24, 2012 by Eugene · 12 Comments
1 原理
关于MySQL数据库的分布式事务XA,分布式事务实现的原理,可见[3];关于MySQL XA的说明,可见[1][2]。
MySQL XA分为两类,内部XA与外部XA;内部XA用于同一实例下跨多个引擎的事务,由大家熟悉的Binlog作为协调者;外部XA用于跨多MySQL实例的分布式事务,需要应用层介入作为协调者(崩溃时的悬挂事务,全局提交还是回滚,需要由应用层决定,对应用层的实现要求较高);
本文,假设读者已经知道MySQL数据库外部分布式事务XA的使用,而将重点放在MySQL数据库,如何处理外部分布式事务XA的crash recover,以及面对不同的crash recover的情形,应用程序如何处理,才能够保证分布式事务的一致性。最后,本文简单分析一下目前MySQL数据库外部XA支持存在的问题,以及可选的解决方案。 Read more
原创文章,转载请注明: 文章地址MySQL数据库分布式事务XA的实现原理分析
Percona Live 2012PPT: MySQL’s InnoDB Architecture and Internals
二月 3, 2012 by admin · Leave a Comment
原创文章,转载请注明: 文章地址Percona Live 2012PPT: MySQL’s InnoDB Architecture and Internals
一线DBA总结:MySQL搭配XFS文件系统优势最大
来自国外问答SNS网站Quora的一个问题:XFS、ZFS和ext3这3个文件系统哪个能够与MySQL产生最佳的性能?对此,来自Facebook的资深数据库专家Domas Mituzas给出了自己的解答,他认为MySQL最适合XFS文件系统。
在XFS文件系统的Linux版本发布之前,选择适合的Linux文件系统很简单,追求原始性能通常倾向于使用ReiserFS,而重视数据完整性则首 选ext3。XFS Linux版本出现后,这一情况发生了改变。一项比较XFS、ReiserFS和ext3在原始性能方面优劣的测试显示,在大文件操作方面,XFS在所有 测试中一直处于领先地位。
Read more
原创文章,转载请注明: 文章地址一线DBA总结:MySQL搭配XFS文件系统优势最大
MySQL数据库InnoDB存储引擎查询优化器实现的分析
一月 4, 2012 by Eugene · 6 Comments
投稿者:何登成 作者新浪微博:@何_登成
一、 目的
分析MySQL数据库的查询优化器如何优化InnoDB存储引擎的查询语句:
(1). 如何实现查询优化的功能?
(2). 为了能实现查询优化,存储引擎需要做哪些方面的配合?
二、 测试准备
MySQL数据库软件版本:5.1.49-debug-log Read more
原创文章,转载请注明: 文章地址MySQL数据库InnoDB存储引擎查询优化器实现的分析
MySQL数据库InnoDB存储引擎查询优化器实现的分析之附录
一月 4, 2012 by Eugene · 3 Comments
本系列文章主目录:MySQL数据库InnoDB存储引擎查询优化器实现的分析
附录一
create table aaa (
a1 int,
a2 int,
a3 int,
a4 int,
a5 int,
a6 int,
a7 int,
a8 int,
a9 int) engine = innodb; Read more
原创文章,转载请注明: 文章地址MySQL数据库InnoDB存储引擎查询优化器实现的分析之附录
MySQL数据库InnoDB存储引擎查询优化器实现的分析之best_access_path函数分析
一月 4, 2012 by Eugene · Leave a Comment
1.1 best_access_path函数分析
同样是使用4.1章节中的测试语句:
select * from nkeys, aaa where nkeys.c3 = aaa.a3 and aaa.a2 = 2;
1.1.1 总流程分析
根据4.1章节的分析,join涉及到两张表,同时search_depth参数设置为62. N < search_depth,复杂度为O(N!) = 2! = 2(任何一张表,都可以做驱动表),同时,查询优化能够找到最优的执行计划。 Read more
原创文章,转载请注明: 文章地址MySQL数据库InnoDB存储引擎查询优化器实现的分析之best_access_path函数分析
