事务的隔离级别
多个客户端操作时,各个客户端的食物之间应该是隔离的,相互独立的,不受影响的。
而如果多个事物操作同一批数据时,就会产生不同的问题,就需要设置不同的歌立即被来解决这些问题。
隔离级别分类
MySQL默认隔离级别REPEATABLE-READ
脏读
脏读指事务A读取到了事务B更新了但是未提交的数据,然后事务B由于某种错误发生回滚,那么事务A读取到的就是脏数据。
不可重复读
在一个事务处理过程中读取到了另一个事务中修改并以提交的数据,导致两次查询结果不一致。
在数据库访问时,一个事务在前后两次相同的访问中却读到了不同的数据内容
比如说事务A的执行周期较长,事务A在第一次读取某个数据时,此数据的值为100,读取完成后,事务A又去执行其他的事情,在这个过程中,事务B将这个数据的值修改为200,然后事务A做完其他的事情后,又来读取这个数据的值,发现这个值和第一次所读取的值不相同,这种现象称为不可重复读。
幻读
查询某数据不存在,准备插入此记录,但执行插入时发现此记录已经存在,无法插入。或者查询数据不存在执行删除操作,却发现删除成功。
事务A在查询完记录总数后,事务B执行了新增数据的操作,事务A再次查询记录总数,发现两次查询的结果不一致,平白无故的多了几条记录,这种现象称为幻读。
查询事务隔离级别
修改数据库隔离级别