读书人

高性能MySql学习札记多版本并发控

发布时间: 2012-07-15 20:20:06 作者: rapoo

高性能MySql学习笔记——多版本并发控制算法

AUTOCOMMIT

Mysql默认自动提交,可以通过如下命令查看和修改:

mysql> SHOW VARIABLES LIKE 'AUTOCOMMIT';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| autocommit | ON |
+---------------+-------+
1 row in set (0.00 sec)
mysql> SET AUTOCOMMIT = 1;

隐式锁显式锁

InnoDB在开启事务时,获取隐式锁,在事务提交或者回滚时释放锁,InnoDB根据隔离级别自动处理锁。

但InnoDB也支持显式锁:

SELECT ... FOR UPDATE

SELECT ... LOCK IN SHARE MODE

多版本并发控制(Multiversion Concurrency Controll MVCC)

第一点:

MVCC并不是MySql独有的,Oracle,PostgreSQL等都在使用。

MVCC并没有简单地使用行锁,而是使用“行级别锁”(row-level locking)。MVCC的基本原理是:

在事务中保存数据的快照,这意味着在一个事物里能够看到数据一致的视图,而不用担心这个事务运行多长时间,同时也意味着在同一个时刻不同事务看到的相同表里的数据可能是不同的。

MVCC的基本特征:

读书人网 >Mysql

热点推荐