MySQL之事物处理机制

事物处理

MySql事物处理机制对于处理数据库并发操作有较大的帮助,大多数存储引擎像Innodb就支持数据库处理机制,然而MyISAM则不支持这些数据库事物处理语句

背景

我们在使用数据库事物处理机制的时候,经常是在进行并行操作的时候进行的。比如当我们进行删除帖子的内容的同时,还需要删除帖子里面的评论的信息,如果仅仅删除了帖子,然而评论却没有删除成功,则此次操作则失败。因此在这种情况下,我们需要使用数据库的事物处理机制。

事物处理的ACID属性

  • A 表示原子性;原子性指整个数据库事务是不可分割的工作单位。只有使事务中所有的数据库操作都执行成功,整个事务的执行才算成功。事务中任何一个sql语句执行失败,那么已经执行成功的sql语句也必须撤销,数据库状态应该退回到执行事务前的状态;

  • C,表示一致性;也就是说一致性指事务将数据库从一种状态转变为另一种一致的状态,在事务开始之前和事务结束以后,数据库的完整性约束没有被破坏;

  • I,表示隔离性;隔离性也叫做并发控制、可串行化或者锁。事务的隔离性要求每个读写事务的对象与其它事务的操作对象能相互分离,即该事务提交前对其它事务都不可见,这通常使用锁来实现;

  • D,持久性,表示事务一旦提交了,其结果就是永久性的,也就是数据就已经写入到数据库了,如果发生了宕机等事故,数据库也能将数据恢复。

事物处理的sql语句

START TRANSACTION
DELETE FROM cog_post WHERE post_id=1;
DELETE FROM cog_comment WHERE post_id=1;
commit/rollback

START TRANSACTION表示开始事务处理事件,两个DELETE事件则组成了事物,其中有一个失败则该事物失败,只能全部提交成功才可以。commit表示若只有一条sql语句执行成功,则这条语句才会修改数据库数据,若最终使用ROLLBACK则将回滚到事物处理之前的数据库数据状态,也就是对数据库没有影响。

总结

这篇文章简单介绍了下事务处理机制一些基本概念,也是本人知道对事物处理的简单理解,待到后续学习后再加一些深刻的理解

你可能感兴趣的:(MySQL之事物处理机制)