MySQL事务ACID原理:事务隔离级别与脏读/不可重复读/幻读避坑 一.事务简介事务是一组操作的集合它是一个不可分割的工作单位事物会把所有的操作作为一个整体一起向系统提交 or 撤销操作请求即这些操作要么同时成功要么同时失败。注默认MySQL的事务是自动提交的也就是说当执行一条DML语句MySQL会立即隐式的提交事务。二.事务操作查看/设置事务提交方式 select autocommit; -- 指的是查看事务的自动提交方式 set autocommit 0; -- 如果为1就是自动提交如果为0就是手动提交提交事务 COMMIT回滚事务 ROLLBACK开启事务 start transaction 或 begin三.事务的四大特性原子性Atomicity事务是不可分割的最小操作单元要么全部成功要么全部失败。一致性Consistency事务完成时必须使所有的数据都保持一致。隔离性Lsolation数据库系统提供的隔离机制保证事务在不受外部并发操作影响的独立环境下运行。持久性Durability事务一旦提交或回滚它对数据库中的改变就是永久的。四.并发事务问题脏读一个事务读到另外一个事务还没有提交的数据。不可重复读一个事务先后读取同一条记录但两次读取的数据不同。幻读一个事务按照条件查询数据时没有对应的数据行但是在插入数据时又发现这行数据已经存在。五.事务隔离级别