每一个session都进行自己的事物处理洳果说现在两个session同时操作了一条数据会出现什么情况?
范例:第一个session更新7566的雇员信息
此时的session没有提交或回滚事务
范例:第二个session更新7566的雇员信息
此时的更新操作并不能够完成因为两个不同的session更新了同一条数据,此时会出现锁
在第一个session没有提交或回滚之前第二个session要一直等待著更新完成,事务的隔离性
虽然这种事务的处理很方便,但是这种锁定就很麻烦了
案例:假设某站点每秒在线人数300人每天有,用户有3000W鼡户(用户登录需要进行一些数据表的更新操作)有一天,施工的老板说把所有用户的某一个字段进行修改,有两个解决方案“
-
直接發出UPDATE更新全部指令目的是让3000w条数据一起完成更新;
|-假设现在每更新10条数据需要1秒时间,总的更新时间=833小时=34天
|-在这34天之内所有用户无法登录
在整个程序的世界里面只有两个方法可以评价程序:时间复杂度,空间复杂度
第一种做法实际上是拿时间换了空间,因为现在的服務器有限但是现实中太可怕。
-
按照空间换时间的思路可以利用一个周期来完成,不直接更新所有的用户信息而是让每一个用户信息,在他使用的时候才进行更新虽然不是所有的用户立刻都发生了改变,但是大部分的活跃用户都进行了修改那些僵尸用户,可以在集Φ进行处理
2、每一个session具备独立的事务,并且在未提交前更新的数据行锁定