mysql锁粒度有哪些
mysql锁粒度就是我们平常所说的锁级别。数据库引擎具有多粒度锁定,同意一个事务锁定不一样类型的资源。mysql数据库有三种锁的级别,离别是:页级锁、表级锁和行级锁。
锁粒度
(引荐教程:mysql教程)
锁粒度就是我们平常所说的锁级别。
数据库引擎具有多粒度锁定,同意一个事务锁定不一样类型的资源。 为了尽量减少锁定的开销,数据库引擎主动将资源锁定在适合任务的级别。
锁定在较小的粒度(例如行)可以提高并发度,但开销较高,由于假如锁定了很多行,则需要持有更多的锁。 锁定在较大的粒度(例如表)会落低了并发度,由于锁定整个表限制了其他事务对表中任意部分的拜访。 但其开销较低,由于需要保护的锁较少。
锁层次构造
数据库引擎平常必需猎取多粒度级别上的锁才能完全地庇护资源。这组多粒度级别上的锁称为锁层次构造。例如,为了完全地庇护对索引的读取,数据库引擎实例大概必需猎取行上的同享锁乃至页和表上的意向同享锁。
MySQL有三种锁的级别:页级、表级、行级
MyISAM和MEMORY储备引擎采纳的是表级锁(table-level locking);
BDB储备引擎采纳的是页面锁(page-level locking),但也支撑表级锁;
InnoDB储备引擎既支撑行级锁(row-level locking),也支撑表级锁,但默许状况下是采纳行级锁。
MySQL这种锁的特性可大致归纳如下:
表级锁:开销小,加锁快;不会显现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。
行级锁:开销大,加锁慢;会显现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。
页面锁:开销和加锁时间界于表锁和行锁之间;会显现死锁;锁定粒度界于表锁和行锁之间,并发度一样。
以上就是mysql锁粒度是啥的具体内容,更多请关注百分百源码网其它相关文章!