MySQL使用可重复读作为默认隔离级别的原因

MySQL使用可重复读作为默认隔离级别的原因
一般的DBMS系统,默认都会使用读提交(Read-Comitted,RC)作为默认隔离级别,如Oracle、SQL Server等,而MySQL却使用可重复读(Read-Repeatable,RR)。要知道,越高的隔离级别,能解决的数据一致性问题越多,理论上性能损耗更大,可并发性越低。隔离级别依次为 SERIALIZABLE > RR > RC > Read-Uncommited 在SQL标准中,前三种隔离级别分别解决了幻象读、不可重复读和脏读的问题。那么,为什...

TenDB快速加字段实现原理

TenDB快速加字段实现原理
腾讯互娱内部维护了一个MySQL分支,基于官方5.5.24,实现了类似于Oracle 11g的快速加字段功能,这个分支我们内部称为TenDB。该功能通过扩展存储格式来实现,原理类似于Oracle 11g,以下介绍下其实现原理。 1. GCS行格式 需要在innodb中实现类似oracle的快速加字段功能,仅仅基于原来的行格式是不行的,必须对其进行扩展。为了保证原MySQL和innodb的兼容性,不改变原存储格式的行为,在线加字段功能是通过新...

Innodb页面存储结构-2

Innodb页面存储结构-2
上一篇《Innodb页面存储结构-1》介绍了Innodb页面存储的总体结构,本文会介绍页面的详细内容,主要包括页头、页尾和记录的详细格式。 学习数据结构时都说程序等于数据结构+算法,而在innodb中,其页面结构和记录格式可以说就是其数据结构。并且理解这些结构后,对innodb的页面行为(算法)的理解也有很大帮助。 1. 表空间 介绍页面具体结构之前,先介绍一些Innodb表空间的概念。 表空间,数据文件的集合,...

Innodb页面存储结构-1

Innodb页面存储结构-1
本文介绍Innodb的索引数据页面存储结构,主要介绍数据页面的整体结构,而页面的详细结构将会在另一篇中介绍。 1. B+树 阅读本文前,首先要知道一些关于B树的基础知识。Innodb的一个表可能包含多个索引,每个索引都使用B+树来存储。而索引包括聚集索引和二级索引,聚集索引使用表的主键作为索引键,包含表的所有字段。二级索引只包含索引键和聚集索引键(主键)的内容,不包括其他字段。每一个索引都是一...

Perl获取system返回值的问题

Perl获取system返回值的问题
需求是这样的: my $cmd=q{mysqldump xxxx | gzip -c >> yyy.gz}; my $ret=system($cmd); 1.  我们希望判断system是否成功; 2.  我们希望通过检查进程exit code,判断system执行$cmd命令具体的出错情况; my $cmd = q{mysqldump xxxx | gzip -c >> yyy.gz}; my $ret = system($cmd) if ($ret != 0) {     # 很遗憾,事实上我们得到的返回值$ret一直...
Copyright © 腾讯游戏DBA团队 保留所有权利.  

用户登录

分享到: