zoukankan      html  css  js  c++  java
  • mysql中的锁

    主要介绍MyISAM的表锁和InnoDB的行锁

    一:MyISAM的表锁

      1:设置读锁:lock table t_myisam_lock read;     unlock tables;//释放锁

      

      注:不要使用别名去查询,select lock.* from t_myisam_locak as lock,会报错。解决办法就是 lock table t_myisam_lock as lock read,使用别名设置锁。

      2:设置写锁:lock table t_myisam_lock write;  unlock tables;//释放锁

         

      共同点:

        只要是设置了读锁或者写锁,在同一个session对其他表都不能查询和修改,在不同session对其他表都能查询和修改。

      不同点:

        在同一session,读锁是能查询但不能修改,写锁是能查询、能修改。

        在不同session,读锁是能查询但是修改需要等待,写锁是能查询修改都需要等待。

    二、innodb的行锁

      1:共享锁

        select * from 表名  where 条件  lock in share mode;

      2:排他锁

        select * from 表名  where 条件  for update;

        只会锁住这一行记录,操作其他的记录直接运行。操作该条记录会等待。

      注:锁住有索引的数据,会锁住查询的数据。没有索引的会锁住全部的数据。

      

      

      共享锁和排他锁的区别

      

      

    三、innodb的表锁

      和myisam的表锁一样。不同点:开启一个新事务会释放表锁。

        

      

  • 相关阅读:
    209. Minimum Size Subarray Sum
    208. Implement Trie (Prefix Tree)
    207. Course Schedule
    206. Reverse Linked List
    205. Isomorphic Strings
    204. Count Primes
    203. Remove Linked List Elements
    201. Bitwise AND of Numbers Range
    199. Binary Tree Right Side View
    ArcGIS API for JavaScript 4.2学习笔记[8] 2D与3D视图同步
  • 原文地址:https://www.cnblogs.com/orange-time/p/10566022.html
Copyright © 2011-2022 走看看