解决事务并发问题的有效手段。
1)悲观锁
采取一种悲观的态度,数据一定发生冲突;数据在读取的时候已经加锁。使用
数据库锁机制。
表级锁
共享锁
排它锁
lock table table_name
行级锁
select...from...for update
行级共享锁
行级排它锁
共享行级排它锁
2)乐观锁
采取一种乐观的态度,一般情况下不会发生冲突,数据在更新时判断数据的版
本,若版本相同就可以更新,版本不同就不能更新。
数据库表增加一列(版本列)。
1)查询数据(n行记录,记录中就有一列是版本号);
2)更新到数据前,比较查询出数据记录与数据库中数据记录的版本是否
相同;
3)更新数据。
4)还原版本号为0
1)悲观锁
采取一种悲观的态度,数据一定发生冲突;数据在读取的时候已经加锁。使用
数据库锁机制。
表级锁
共享锁
排它锁
lock table table_name
行级锁
select...from...for update
行级共享锁
行级排它锁
共享行级排它锁
2)乐观锁
采取一种乐观的态度,一般情况下不会发生冲突,数据在更新时判断数据的版
本,若版本相同就可以更新,版本不同就不能更新。
数据库表增加一列(版本列)。
1)查询数据(n行记录,记录中就有一列是版本号);
2)更新到数据前,比较查询出数据记录与数据库中数据记录的版本是否
相同;
3)更新数据。
4)还原版本号为0