网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

MySQL和Oracle行锁区别及用法

下文主要给大家带来MySQL和Oracle行锁区别及用法,希望这些内容能够带给大家实际用处,这也是我编辑MySQL和Oracle行锁区别及用法这篇文章的主要目的。好了,废话不多说,大家直接看下文吧。

成都创新互联于2013年成立,是专业互联网技术服务公司,拥有项目成都网站建设、成都网站设计网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元疏附做网站,已为上家服务,为疏附各地企业和个人服务,联系电话:13518219792

InnoDB

  1. INNODB表是索引组织的表,主键是聚集索引,非主键索引都包含主键信息。

  2. INNODB默认是行锁。

  3. INNODB行锁是通过给索引项加锁来实现的,即只有通过索引条件检索数据,InnoDB才使用行级锁,否则将使用表锁。

InnoDB行锁实现方式

InnoDB行锁是通过给索引上的索引项加锁来实现的,如果没有索引,InnoDB将通过隐藏的聚集索引来对记录加锁。InnoDB行锁分为3种情形。

  • Record lock:对索引项加锁。

  • Gap lock:对索引项之间的“间隙”、第一条记录前的“间隙”或最后一条记录后的“间隙”加锁。

  • Next-key lock:前两种的组合,对记录及其前面的间隙加锁。

InnoDB这种行锁实现特点意味着:如果不通过索引条件检索数据,那么InnoDB将对表中的所有记录加锁,实际效果跟表锁一样!

在实际应用中,要特别注意InnoDB行锁的这一特性,否则可能导致大量的锁冲突。

Oracle

  1. 在Oracle的每行数据上,都有一个标志位来表示该行数据是否被锁定。这样就大大减小了行级锁的维护开销,数据行上的锁标志一旦被置位,就表明该行数据被加X锁,Oracle在数据行上没有S锁。

  2. 许多对Oracle不太了解的技术人员可能会以为每一个TX锁代表一条被封锁的数据行,其实不然。TX的本义是Transaction(事务),当一个事 务第一次执行数据更改(Insert、Update、Delete)或使用SELECT… FOR UPDATE语句进行查询时,它即获得一个TX(事务)锁,直至该事务结束(执行COMMIT或ROLLBACK操作)时,该锁才被释放。所以,一个TX 锁,可以对应多个被该事务锁定的数据行。

  3. ORACLE的行级锁 只是数据块头的ITL、数据行头的LB锁标识位,不需要消耗额外的资源。需要注意的是事务并不是被行阻塞,而是被其它的事务阻塞。所以某些数据库就有锁升级机制,而ORACLE没有。ORACLE的行级锁 只是数据块头的ITL、数据行头的LB锁标识位,不需要消耗额外的资源。

对于以上关于MySQL和Oracle行锁区别及用法,大家是不是觉得非常有帮助。如果需要了解更多内容,请继续关注我们的行业资讯,相信你会喜欢上这些内容的。


新闻名称:MySQL和Oracle行锁区别及用法
文章网址:http://bjjierui.cn/article/jccdgp.html

其他资讯