事务是什么?
事务是一系列的数据库操作,是数据库应用的基本单位。MySQL 事务主要用于处理操作量大,复杂度高的数据。其主要有下事务特性、脏读、幻读、不可重复读、事务隔离、并发事务以及事务实现原理。
MySQL中只有InoDB引擎支持事物,具有四个特性如下:
- 原子性(Atomic):要么全部执行,要么全部不执行。
- 一致性(Consistency):事物执行使得数据库从一种正确状态转化为另一种正确状态。
- 隔离性(Isolation):在事物正确提交前,不允许把事物对数据的任何改变提供给其他事物。(加锁)
- 持久性(Durability):事物提交后,其结果永久保存在数据库中。
什么是脏读?
在事物A修改数据之后提交数据之前,事物B来读取数据,如果不加控制,事物B读取A修改过数据,之后A又对数据作了修改再提交,则B读到的数据是脏数据,此过程称为脏读Dirty Read。
什么是幻读?
幻读的重点在于新增或者删除:在同一事物中,同样的条件,第一次和第二次读出来的记录数<