zoukankan      html  css  js  c++  java
  • 共享锁和排它锁

    排它锁(Exclusive Locks,即X锁)

    1、对于UPDATE、DELETE和INSERT语句,InnoDB会自动给涉及数据集加排他锁(X);对于普通SELECT语句,InnoDB不会加任何锁

    2、如果一个事务对某一行数据加了X锁,另一个事务既不能对相应的行加S锁也不能加X锁。

    共享锁(Share Locks,即S锁)

    1、如果一个事务对某一行数据加了S锁,另一个事务还可以对相应的行加S锁,但是不能对相应的行加X锁。

    读锁和写锁是互斥的,读写操作是串行的,都处于等待队列中时,即使写锁后到,也会优先执行写锁,如果写锁执行时间过长,可能会产生死锁;

    解决办法

    1. 通过指定启动参数low-priority-updates,使MyISAM引擎默认给予读请求以优先的权利
    2. 通过执行命令SET LOW_PRIORITY_UPDATES=1,使该连接发出的更新请求优先级降低
    3. 通过指定INSERT、UPDATE、DELETE语句的LOW_PRIORITY属性,降低该语句的优先级
      、系统参数max_write_lock_count设置一个合适的值,当一个表的读锁达到这个值后,MySQL就暂时将写请求的优先级降低,给读进程一定获得锁的机会
  • 相关阅读:
    Linux file命令详解
    Linux stat命令详解
    Linux cut命令详解
    Linux tr命令详解
    Linux grep/egrep命令详解
    Linux awk命令详解
    Linux xargs命令详解
    MVC设计模式
    qt博客
    android
  • 原文地址:https://www.cnblogs.com/ngrzr/p/11906769.html
Copyright © 2011-2022 走看看