mysql中的事务隔离级别
事务是逻辑上的一组操作,要么都执行,要么都不执行。 事务最经典的、经常被拿出来说的例子就是转账了。假如小花要给小白转账1000元,这个转账会涉及到两个关键操作就是:将小花的余额-1000,将小白的余额+1000。但是万一在这两个操作之间突然出现了错误,比如银行系统突然断电,或突然宕机崩溃,都可能会导致小花的余额-1000之后,小白的余额却没有+1000,这样小花和小白就都不开心了。事务就是为了保证这两个关键操作要么都成功,要么都要失败的一个机制,都成功也就完成了转账,都失败也不会造成小花的损失。 事务的特性 事务是有四个特性(ACID)的,分别是原子性、一致性、隔离性和持久性。 原子性(Atomity): 事务是最小的执行单位,不允许分割。事务的原子性确保动作要么全部完成,要么完全不起作用。 一致性(Consistency): 执行事务的前后,数据保持一致。 隔离性(Isolation): 并发访问数据库时,一个用户的事务不能被其他事务所干扰,各个并发事务对于数据库来说都是独立的。 持久性(Durable): 一个事务被提交之后。它对数据库中数据的改变是持久的,即使数据库发生故障也不应该对其有任何影响。 并发事务带来的问题 在典型的应用程序中,如果是多个事务并发运行,经常会出现多个事务操作相同的数据来完成各自的任务(多个用户对统一数据进行操作)的场景。 虽然并发是必须的