并发事务带来哪些问题?怎么解决这些问题?Mysql的默认隔离级别?
并发事务将带来:脏读、不可重复读、幻读问题;解决方案是采用事务隔离,事务隔离有:读未提交、读已提交、可重复度、串行化这些隔离级别。
并发事务问题
- 脏读:一个事务读到另一个事务还未提交的数据
- 不可重复读:一个事务先后读取同一条记录,但两次读取的数据不同,称之为不可重复读
- 幻读:一个事务按照条件查询数据时,没有对应的数据行,但是在插入数据时,又发现这行数据已经存在,好像出现了幻影。
脏读:另一个事务读取到这个事务未提交的数据
不可重复读:多次查询到的数据不一样
幻读:查询时没有数据,插入数据时失败报错
事务隔离
事务隔离级别越高,数据越安全,但性能越低
数据库默认:可重复读