MySQL事务和锁的关系

用一句话去概括事务:将对数据库进行的多个操作封装成单个,只有在所有操作都成功的情况下才真正实现变动,否则数据原封不动。用一句话概括锁:一个让数据不能被修改的功能。而他们之间的关系可以定义为:锁是实现事务其中一个特性的机制。

事务是一个针对数据质量产生的概念。在高并发或者数据库出现突然断电的情况下,事务所包含的特性就能应对可能会出现的差错。事务有4个特性:Atomic + Consistent + Isolated + Durable (ACID)。Atomic是原子性也就是之前提到的“要么都成功,要么都原封不动的概念”。它的设定是来保证一个事务在执行上不能被拆分。Consistent是一致性,如果出现突然断电,事务的原则能保证没有数据更新会执行到一半而导致和其他数据不统一。Isolated是隔离性,其指的是事务之间是否能意识到对方的存在。这也取决于事务隔离的级别。所以隔离性本身是有自己的弹性在的。Durable持久性,表示数据保存后会持续存在。

在这4大特性里,数据库的锁只跟事务特性里的隔离性有关。所谓事物之间是否能“意识”到对方的存在就是每个事务是否能对另一事务针对的数据做出更改。所以可不可以更改必然更所有关(锁:一个让数据不能被修改的功能)。

你可能感兴趣的:(MySQL事务和锁的关系)