面试官问:mysql的事务隔离级别有哪些?
答:读未提交,读已提交,可重复读,串行化
再问:他们的区别是什么,会发生什么?
答:
读未提交隔离级别最低,脏读,不可重复读,幻读都有可能出现
(脏读:读取到尚未提交的数据;不可重复读:两次分别读取到事务提交前后的数据,造成两次读取的数据不一致;幻读:针对数据量,读取前后中间事务插入或删除数据,造成两次读取数据量不一致)
读已提交,会造成不可重复读,即事务中两次查询数据不一致
可重复读,mysql的默认级别,会出现幻读即两次访问同一数据表查询到数据量不一致
串行化,最高级别的事务隔离,缺点影响性能
互联网项目一般使用读未提交的隔离级别