myisam默认使用的 是表级锁,一般的web应用表级锁基本都能满足需求了。Innodb默认使用的是行级锁,但是它也支持表级锁的。行级锁的精度更加高,同样耗掉的资源也是最多的。而伯克利DB引擎默认使用的页级锁,各有各的千秋。
1.mysql的表级锁使用方法:
lock table [tablename] [lock-type];
例如,给表test1增加读锁:
lock table test1 read;
2.mysql的锁定解除方法:
unlock tables;
上面就是使用表级和解除的方法。下面的几个结论,我们可以亲自测试的,这也是从我的测试中得出来的:
1.写锁优先于读锁(这个可以用参数设置);
2.当读锁发生的时候,不能再加写锁,但是可以加读锁;
3.有写锁的时候,读锁和写锁都不能再加了;
当冲突的时候,后者会被加入到阻塞队列中。
ok,上面的结论可以用锁的使用方法验证的。
mysql的表级锁
最新推荐文章于 2024-08-03 15:29:56 发布