MySQL中的锁

MySQL中的锁

InnoDB中锁非常多,总的来说,可以如下分类:

MySQL中的锁_第1张图片MySQL中的锁_第2张图片

这些锁都是做什么的?具体含义是什么?我们现在来一一学习。

1.6.1.解决并发事务问题

我们已经知道事务并发执行时可能带来的各种问题,最大的一个难点是:一方面要最大程度地利用数据库的并发访问,另外一方面还要确保每个用户能以一致的方式读取和修改数据,尤其是一个事务进行读取操作,另一个同时进行改动操作的情况下。

1.6.2.并发事务问题

一个事务进行读取操作,另一个进行改动操作,我们前边说过,这种情况下可能发生脏读、不可重复读、幻读的问题。

怎么解决脏读、不可重复读、幻读这些问题呢?其实有两种可选的解决方案:

1.6.2.1.方案一:读操作MVCC,写操作进行加锁

事务利用MVCC进行的读取操作称之为一致性读,或者一致性无锁读,也称之为快照读,但是往往读取的是历史版本数据。所有普通的SELECT语句(plain SELECT)在READ COMMITTED、REPEATABLE READ隔离级别下都算是一致性读。

<

你可能感兴趣的:(MySQL,mysql,数据库,sql)