zoukankan      html  css  js  c++  java
  • 表锁和行锁

    1  表锁需要维护的数量比行锁少,所以行锁所需的成本高。但对于同一个表的操作来说 比如先要在最后一行添加一行数据,然后再修改其他行的数据。这就得用行锁。所以说行锁和表锁不能说那个好那个不好,只能根据情况定。

    2 但是加了行锁 还得加意向锁 但是表锁不需要。  对于比较锁的快慢没有意义。应该比较的是不同粒度锁的情况下插入更新删除的速度。

    3  锁定对象的大小叫做锁的粒度。所对象可以是逻辑单元(如数据库,表,记录,列,索引) 也可以是物理单元(如数据页,索引页)。

      锁定的粒度 与系统的并发度和并发控制的开销密切相关。一般锁的粒度越大 ,锁定的对象就小,可选择性小,开销就笑 并发度就小。反之 粒度越小,对象就多 ,可选择性大,开销大 并发大。

    4 :所以在锁定粒度的同时应该考虑并发度 和开销,以求最优效果。一般需要处理大量记录的事物可以是表的锁定粒度。需要多个表中的大量记录的事物可以以数据库为锁定粒度。如果需要处理某个表中的少量记录则一记录为锁定粒度。

    5 多粒度锁协议是指,允许对多粒度树中的节点单独地加锁,另外对一个节点加锁意味着对这个节点的各个子节点也加同样的锁。

    因此可以用俩中方式对多粒度树中的节点加锁 :显式锁定和隐式锁定。显示锁定是在事物明确指定的节点上加锁。  隐式锁是由于在其上级节点中加显示锁时而使该节点获得锁。

    一般对一个节点加锁时,先检查该节点上是否有无显示锁定与之冲突,检查上级节点是否有无锁与之冲突。 检查下级 节点是否有无锁冲突。

  • 相关阅读:
    jmeter非GUI模式运行单节点
    Feign详细构建过程及自定义扩展
    【springboot 源码解析】springboot 依赖管理
    通知神器——java调用钉钉群自定义机器人
    【乱纪】Markdown中常用的乱七八糟的东西
    【Java入地】 01 多线程与高并发
    【Linux】默认文本编辑器 vim 的入门与进阶
    【Linux】 安装搜狗输入法
    【Linux】系统发展史上的血雨腥风
    【Java进阶】01 Lambda 使用与进阶
  • 原文地址:https://www.cnblogs.com/yhl664123701/p/4691823.html
Copyright © 2011-2022 走看看