- 什么是MySQL的事物?为什么需要他?有哪些使用场景?
一系列的SQL操作,要么都成功,要么都不成功
特定场景需要,比如转账
- 事物的基本要素是什么?或者 解释什么是ACID
原子性 事物是个原子操作,其对数据要么操作成功,要么操作失败
一致性 一致性强调的最终状态,要么是初始状态(有可能事务回滚了),
要么是最终状态,事务成功执行后
隔离性 同一时间,只允许一个事物请求同一数据,不同的事物之间彼此之间没有干扰
持久性 事物完成后,所有操作的结果将被保存到数据库,不能回滚
- MySQL并发带来的问题
丢失更新:A、B同时修改数据,A先,B后,A提交后B提交,B操作覆盖了A的操作,导致A丢失更
新
脏读:A修改数据,B读取数据;随后A撤销操作,则B读到脏数据
不可重复读:B读取数据,A修改数据,B再次读取数据,发现数据和第一次读时不一致
幻读:A读取了某个范围的数据,B在此范围内插入一条数据;A再次读取,结果不一样
- 锁,悲观锁,乐观锁
锁
在并发环