Xia*_*Jun 5 mysql database innodb
我已经阅读了有关意图锁定的MySQL手册? http://dev.mysql.com/doc/refman/5.5/zh-CN/innodb-locking.html#innodb-intention-locks
它说“使在多个粒度级别上的锁定切实可行”,但是如何呢?它没有告诉我们这件事。
谁能提供详细的解释和样本?
将 InnoDB 数据空间视为数据库的集合,每个数据库都是表的集合,每个表都是行的集合。这形成了一个层次结构,越来越低的层次提供越来越多的粒度。
现在,当你想在事务中更新这棵树的某些部分时,你怎么做?好吧,InnoDB 采用了多粒度锁定 (MGL)。MGL 中的机制是您指定“意图”以在特定粒度级别锁定为共享或独占,然后 MGL 将所有这些意图组合在一起并沿层次结构向上移动,直到找到给定这些意图必须锁定的最小生成集.
没有意图锁,您将拥有高级共享锁和排他锁,这实际上并没有给您太多灵活性:它们要么全部要么全无,这就是我们在 MyISAM 中看到的。但是 MGL 带来了预期共享和预期独占的概念,正如我上面所说,它使用它来提供“刚好”的锁定。
如果您想了解具体的 C 级实现,请参阅 InnoDB 中的事务锁简介。
归档时间: |
|
查看次数: |
936 次 |
最近记录: |