事务具有四个特征,即我们通常所说的ACID,原子性(Automicity),一致性(Consistency),隔离性(Isolation),持久性(Durability)。
隔离性方面,标准SQL定义了四个事务的隔离级别。
这些级别的判断标准为:1.是否存在脏数据读取。(也就是可以读取到事务处理时的中间变量)2.是否可以重复读(也就是多事务并发时,重复多次读取数据一致)3 是否存在幻读(查询条件一致,结果不一致)
根据这些标准可以将隔离级别设置为不同级别:
1、读未提交 (级别最低,上述问题均会出现)
2. 读已提交 (可以解决读取脏数据问题)
3. 可重复读取 (可以解决不可重复读取)
4. 串行化 (可以解决幻读)
隔离级别越高,性能越低,需要我们开发人员根据具体的需求采取不同策略。
我们最常用的Mysql的默认级别为 可重复读取 。