zoukankan      html  css  js  c++  java
  • mysql中的共享锁与排他锁

      行级锁分为共享锁和排他锁两种

      

      共享锁:又称读锁,是读取操作创建的锁,其他用户可以并发读取数据,但任何事务都不能对数据进行修改(获取数据上的排他锁),直到已释放所有的共享锁。

      如果事务T对数据S加上共享锁后,则其他事务只能对A再加共享锁,不能加排他锁,获准共享锁的事务只能读时局,不能修改数据。

      用法:

      select...LOCK IN SHARE MORE

      在查询语句后面增加LOCK IN SHARE ,ORE,mysql会对查询结果中的每行都加共享锁,当没有其他县城对查询结果集中的任何一行使用排他锁时,可以成功申请共享锁,否则会被阻塞,其他县城也可以读取使用了共享锁的表,而且这些县城读取时是同一个版本的数据。

      排他锁:又称写锁,如果事务T对数据A加上排他锁后,则其他事务不能再对A加任何类型的锁,获准排他锁的事务既能读数据,又能修改数据

      用法:SELECT... FOR UPDATE

      在查询语句后面增加FOR UPDATE,mysql会对查询结果中的每行都加排他锁,当没有其他县城对查询结果集中的任何一行使用排他锁时,可以成功申请排他锁,否则会被阻塞

      

      意向锁

      innodb还有两个表锁

      1、意向共享锁(IS):表示事务准备给数据航加入共享锁,也就是说一个数据行加共享锁钱必须先取得该表的IS

      2、意向排他锁(IX):表示事务准备给数据行加入排他锁,说明事务在一个数据航加排他锁钱必须先取得该表的IX

      意向锁是Innodb自动加的,不需要用户干预

      

      共享锁:SELECT ... LOCK IN SHARE MODE;

      排他锁:SELECT ... FOR UPDATE;

  • 相关阅读:
    权限系统概要(收集,整理)
    全程参观 Google 总部
    从Excel表格中坐标生成 点线面
    Cross Site Script 知识
    UserControl 实现From_Close
    用后立即调用Dispose
    获取鼠标点击处的颜色
    arcsde9.3 the arcsde repository is not successfully created
    ArcGIS9.3全套 下载地址
    SQLServer 2008 安装 is not a volid login or don't have permission
  • 原文地址:https://www.cnblogs.com/alighie/p/8298436.html
Copyright © 2011-2022 走看看