zoukankan      html  css  js  c++  java
  • Mysql的锁类型有哪些?

    mysql 有三种类型的锁

    • 表锁:开销小,加锁快,不会出现死锁

      指对一整张表加锁,一般是DDL处理时使用(比如Alter)。

      由Mysql Server实现,使用的是一次性锁技术,会话开始时使用lock命令将后需要用到的表加锁,后面通过unlock tables释放锁。

    • 行锁:开销大,加锁man,会出现死锁

      指锁定某一行或者某几行,或者行与行之间的间隙。由存储引擎实现,InnoDB支持行锁,但是myISam只能用mysql Server提供的表锁。

      ①update user set age = 10 where id = 49;
      ②update user set age = 10 where name = 'Tom';
      

      以上俩sql,①在主索引加锁,②在二级索引name加锁并再在主索引加锁,由此可见主索引只需要加一次锁,二级索引需要加两次锁。而多行加锁则会重复①或②的加锁流程。  

    • 页锁:开销大于表锁小于行锁,会出现死锁(暂不做解释)

    以上总结参考:https://mp.weixin.qq.com/s/liCIjDJYPONvPb1BWAqw0w、https://mp.weixin.qq.com/s/rtSdXR9GxPn39bFmmZVrnA

  • 相关阅读:
    开发实例
    一张图解析FastAdmin中的表格列表的功能
    fastAdmin进阶
    detailFormatter bootstrapTable
    responseHandler
    自定义PDO封装类
    bootstrapTable
    Thread Safety
    FastAdmin 基本知识流程一栏
    thinkphp5 Request请求类
  • 原文地址:https://www.cnblogs.com/smallzhen/p/14608696.html
Copyright © 2011-2022 走看看