sqlserver、oracle、mysql 锁类型

来源:互联网 发布:加强网络监督文化建设 编辑:程序博客网 时间:2024/05/21 06:53

sqlserver

写操作必须向服务器申请并获得锁才能修改数据,而且读操作必须申请和获得读锁才能查询数据。多用户可以同时读取数据,而一个表或者表中的部分列只能分配一个写锁,并且拒绝读请求一直等到写锁释放。

锁有行、页、表锁三种类型,会发生锁升级。

用savetransaction 来创建保存点。

oracle

写操作必须向服务器申请并获得锁才能修改数据,而读操作不需要任何锁就能查询数据。另外服务器必须保证从查询开始到结束读操作看到一个一致的视图,即使其他用户修改,数据看上去也要相同,这个称为多版本控制。

只有行锁。

MySQL

两种都有,取决与用到引擎。

锁有行、页、表锁三种类型,会发生锁升级。

MySQL中的事务有保存点的说法,即在事务中可以创建一个保存点 savepoint <保存点名称>,当需要回滚的时候用rollback to savepoint <保存点名称> 即可。

0 0