美文网首页
丁奇-MySQL实战读书笔记6

丁奇-MySQL实战读书笔记6

作者: 布朗XD | 来源:发表于2021-02-04 00:24 被阅读0次

    全局锁

    全局锁就是对整个数据库实例加锁,全局锁的典型使用场景是,做全库逻辑备份。

    表级锁

    一种是表锁,一种是元数据锁(meta data lock,MDL)。
    表锁的语法是 lock tables … read/write。与 FTWRL 类似,可以用 unlock tables 主动释放锁,也可以在客户端断开的时候自动释放。
    当对一个表做增删改查操作的时候,加 MDL 读锁;当要对表做结构变更操作的时候,加 MDL 写锁。读锁不互斥,读锁和写锁、写锁之间是互斥的。

    如何安全地给小表加字段

    MySQL 的 information_schema 库的 innodb_trx 表中,你可以查到当前执行中的事务。如果你要做 DDL 变更的表刚好有长事务在执行,要考虑先暂停 DDL,或者 kill 掉这个长事务。
    alter table 语句里面设定等待时间,如果在这个指定的等待时间里面能够拿到 MDL 写锁最好,拿不到也不要阻塞后面的业务语句,先放弃。之后开发人员或者 DBA 再通过重试命令重复这个过程。

    相关文章

      网友评论

          本文标题:丁奇-MySQL实战读书笔记6

          本文链接:https://www.haomeiwen.com/subject/vrzetltx.html