数据库读现象
一 数据库读现象 数据库管理软件的“读现象”指的是当多个事务并发执行时,在读取数据方面可能碰到的问题,包括有脏读、不可重复读和幻读。 ps:对于一些数据库管理软件会自带相应的机制去解决脏读、不可重复读、幻读等问题,因为这些自带的机制,下述的一些实验现象可能在某一数据库管理软件的默认机制下并不成立,即我们并不能在所有数据库管理软件中看到所有的读现象。…
数据库锁机制
一 数据库的锁机制 什么是锁?为何要加入锁机制? 锁是计算机协调多个进程或线程并发访问某一资源的机制,那为何要加入锁机制呢? 因为在数据库中,除了传统的计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供需要用户共享的资源。 当并发事务同时访问一个共享的资源时,有可能导致数据不一致、数据无效等问题, 例如我们在数据库的读现象中介绍过,在…
多版本并发控制MVCC
一 多版本并发控制MVCC:Snapshot Read vs Current Read MySQL InnoDB存储引擎,实现的是基于多版本的并发控制协议——MVCC (Multi-Version Concurrency Control) (注:与MVCC相对的,是基于锁的并发控制,Lock-Based Concurrency Control)。M…