问题
- 脏读
读到的数据是临时且无效,如读到另一个事务未提交的数据,若该事务回滚,则读到的数据是临时的无效数据。 - 不可重复读
一个事务两次读到的数据不一样,是一种现象,而不是一种问题 。 - 幻读
两次读到的数据不一样,主要针对插入,由于两次读取之间有其他用户插入了数据,导致两次读到的数据条目不一致,就像出现了幻觉。 - 脏读和幻读的区别
脏读主要针对修改,幻读主要针对插入。
隔离级别
通过设置MySQL的隔离级别避免上面提到的问题
MySQL中隔离级别:
读未提交(READ UNCOMMITTED)
读提交 (READ COMMITTED)
可重复读 (REPEATABLE READ)(默认)
串行化 (SERIALIZABLE)
注:图片来源于网络
MySQL中事务操作命令
注:摘自菜鸟教程