iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >主流关系数据库锁实现的区别
  • 452
分享到

主流关系数据库锁实现的区别

2024-04-02 19:04:59 452人浏览 安东尼
摘要

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

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

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

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

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

您可能感兴趣的文档:

--结束END--

本文标题: 主流关系数据库锁实现的区别

本文链接: https://www.lsjlt.com/news/49291.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作