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

    行锁

    1、支持的存储引擎:Innodb;

    2、InnoDB行锁是通过给索引上的索引项加锁来实现的,意味着:只有通过索引条件检索数据,InnoDB才使用行级锁,否则,InnoDB将使用表锁!

    3、适用场景:有大量按索引条件并发更新少量不同数据,同时又有并发查询的应用

    4、特点:开销大,加锁慢;会出现死锁;锁定粒度小,发生锁冲突的概率低,并发度高

    5、分析:show status like 'innodb_row_lock%';分析系统上行锁的争夺情况如果发现锁争用比较严重,如InnoDB_row_lock_waits和InnoDB_row_lock_time_avg的值比较高,还可以通过设置InnoDB Monitors来进一步观察发生锁冲突的表、数据行等,并分析锁争用的原因。

    表锁

    1、支持的存储引擎:Innodb、MYIsam

    2、适用场景:以查询为主,只有少量按索引条件更新数据的应用

    3、特点:开销小,加锁快;不会出现死锁;锁定力度大,发生锁冲突概率高,并发度最低

    4、两种模式:

    ​ • 表共享读锁

    ​ • 表独占写锁

    5、对两张表显示加锁、解锁

    ​ Lock tables orders read local, order_detail read local;

    ​ Select sum(total) from orders;

    ​ Select sum(subtotal) from order_detail;

    ​ Unlock tables;

    6、MyISAM在执行查询语句(SELECT)前,会自动给涉及的所有表加读锁,在执行更新操作(UPDATE、DELETE、INSERT等)前,会自动给涉及的表加写锁

  • 相关阅读:
    同步和异步Http请求工具类通过get和post方式发送请求
    c# IPC实现本机进程之间的通信
    C# 建立window服务
    WPF 将控件绑定到变量
    WPF触发器的使用
    C# DataTable 和List之间相互转换的方法
    WPF自适应窗体实现小结
    WPF简单导航框架(Window与Page互相调用)
    JavaEE框架面试题
    快速排序
  • 原文地址:https://www.cnblogs.com/ngrzr/p/11906710.html
Copyright © 2011-2022 走看看