• MySQL锁


    按照锁的粒度来说,MySQL主要包含三种类型(级别)的锁定机制:

    - 全局锁:锁的是整个database。由MySQL的SQL layer层实现的
    - 表级锁:锁的是某个table。由MySQL的SQL layer层实现的
    - 行级锁:锁的是某行数据,也可能锁定行之间的间隙。由某些存储引擎实现,比如InnoDB。
    

      

    表级锁和行级锁的区别:

    表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低;
    行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高;
    

      

    MySQL表级锁

    由MySQL SQL layer层实现,一种是表锁。一种是元数据锁(meta data lock,MDL)。

    MySQL 实现的表级锁定的争用状态变量:

     show status  like 'table%';
    

      

    - table_locks_immediate:产生表级锁定的次数;
    - table_locks_waited:出现表级锁定争用而发生等待的次数;
    

      

    表锁有两种表现形式:

    表共享读锁(Table Read Lock)
    表独占写锁(Table Write Lock)
    

      

    手动增加表锁

    lock table 表名称 read(write),表名称2 read(write),其他;
    

      

    查看表锁情况

    show open tables;
    

      

    删除表锁

    unlock tables;
    

      

     实例:

    CREATE TABLE mylock (
    id int(11) NOT NULL AUTO_INCREMENT,
    NAME varchar(20) DEFAULT NULL,
    PRIMARY KEY (id)
    );
    INSERT INTO mylock (id,NAME) VALUES (1, 'a');
    INSERT INTO mylock (id,NAME) VALUES (2, 'b');
    INSERT INTO mylock (id,NAME) VALUES (3, 'c');
    INSERT INTO mylock (id,NAME) VALUES (4, 'd');
    

      

  • 相关阅读:
    php高级进阶系列文章--第二篇(PHP基础知识复习)
    开发常用linux命令
    composer 包管理工具学习总结
    微信菜单加emoji图标
    onethink导出excel
    onethinkp导入excel
    导航效果css
    php发送邮件
    js初学者的div移动
    html图片预览
  • 原文地址:https://www.cnblogs.com/1906859953Lucas/p/10944781.html
Copyright © 2020-2023  润新知