- 四种隔离级别
- read_uncommitted:这是事务最低的隔离级别,它充许别外一个事务可以看到这个事务未提交的数据。 这种隔离级别会产生脏读,不可重复读和幻像读。
- read_committed:保证一个事务修改的数据提交后才能被另外一个事务读取。另外一个事务不能读取该事务未提交的数据。 这种事务隔离级别可以避免脏读出现,但是可能会出现不可重复读和幻像读。
- repeatable_read:这种事务隔离级别可以防止脏读,不可重复读。但是可能出现幻像读。 它除了保证一个事务不能读取另一个事务未提交的数据外,还保证了避免下面的情况产生(不可重复读)。
- serializable:这是花费最高代价但是最可靠的事务隔离级别。事务被处理为顺序执行。 除了防止脏读,不可重复读外,还避免了幻像读。
- 七种传播特性
- required: 如果当前存在事物,就用当前事物,如果没有就新建一个。
- requires_new: 不管有没有事物都新建一个事物。
- supports: 如果当前存在事物就用,如果没有就不用事物。
- not_supported:不管有没有事物都不用。
- mandatory: 必须要有事物,如果当前没有事物,就抛出异常。
- never: 当前不应该有事物,如果有事物就抛出异常。
- nested: 如果当前存在事物就嵌套在当前事物中运行,如果没有就新建事物,并嵌套在此事物运行。