隔离级别是为了解决以下问题的:
1.脏读(Drity Read):一个事务读取到另一个事务未提交的数据
2.不可重复读(Non-repeatable read):一个事务读取到另一个事务已提交的数据 (主要是修改)
3.幻读(一个事务多次查询整表数据,由于其他事务新增记录造成多次查询的记录条数不同(一个事务读取到另一个事务已经提交的数据)) (主要是针对insert)
sql标准定义了四种隔离级别:
1.读未提交(read uncommitted):不作任何隔离,具有脏读、不可重复读、幻读问题.
2.读已提交(read committed):只能解决脏读问题
3.可重复读(repeatable read):解决脏读和不可重复读的问题, 不能决绝幻读问题, 是mysql的默认隔离级别
4.可串行化(serializable):数据库运行在串行化,上述问题都可以防止,只是性能非常低