在线上环境中,偶尔会发生一些令人“我靠”的问题,其实一部分问题源于数据库。当开发环境、测试环境没有出现的问题在线上环境中却偶然出现时,这也是解决问题的一个方向。 脏读 数据库隔离级别为读未提交的时候,可能发生脏读。读未提交指当会话 A 的数据库操作尚未commit时,会话 B 可以读取到这个未提交的数据。而此时如果会话 A 因为某些原因rollback了,那么会话 B 读取的数据就是错误的,也就是脏读。当隔离级别提高到读已提交时,则可以避免脏读。 不可重复读 简单的理解就是多次读取结果不一致,在会话 A 中多次相同…