主流关系数据库锁实现的区别-创新互联

SQL Server实现的锁主要是由通过锁表来实现,在内存中开辟专门区域对于不同级别的对象(行、键-块-对象、索引-库)相应的锁记录,事务层和存储层完全分离,并且锁占用开销较大,当锁占用较多资源的时候,会进行锁升级降低并发性。

创新互联专注为客户提供全方位的互联网综合服务,包含不限于做网站、网站设计、城关网络推广、重庆小程序开发、城关网络营销、城关企业策划、城关品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们大的嘉奖;创新互联为所有大学生创业者提供城关建站搭建服务,24小时服务热线:13518219792,官方网址:www.cdcxhl.com

MySQL对与锁的实现主要是行键的实现,采用在页面头部记录位图的方式,这样做在检索行锁记录的时候需要到页面头部获取数据,页面头部因为用位图信息记录行锁,所以相比SQL Server省去了较多的资源,无需进行锁升级。另外gap lock的实现可以很好的支持高级别的隔离级别和并发性的提升,例如RR隔离级别。

Oracle对锁的实现是将事务层和存储层结合的方式进行处理,锁的信息在块头的ITL事务槽和行信息中,这样做极大的节省了内存资源和锁资源,锁几乎不占用任何资源,锁定信息完全结合事务槽和行标志进行判断,不像MySQL有单独的内存锁表分离来处理,在rac模式下,可以很方便的对于除了数据之外的事务和锁信息进行同步,存储及事务,使得rac的设计单一有效,但缺点也很明显,就是过于结合紧密的事务层和存储层使得基于事务的扩展变得很困难。

PostgreSQL的锁设计内存中不记录行锁信息,行锁信息由行上的transactionid信息得到,节省内存资源, 在索引回表时采用mvcc技术避免普通的snapshot now模式或者其他非mvcc需要使用锁定的劣势。对于


网站栏目:主流关系数据库锁实现的区别-创新互联
本文来源:http://myzitong.com/article/deiogp.html