一、读锁
众所周知,MySQL是一个具有锁机制的数据库引擎,那么mysql的读锁如何使用以及造成什么影响呢。
1.1、如何使用?
# 给表格tablename上读锁
lock table [tablename] read;
2.2、造成什么影响?
由于我们已经给表格上锁,那么这个锁就是全局共享的,将导致以下影响:
(1)、当前会话只能对当前表格进行读操作。
(2)、其他会话可以对当前表格tablename进行过读操作;进行更新操作的线程会发生阻塞。
二、写锁
2.1、如何使用?
# 给表格tablename上写锁
lock table [tablename] write;
2.2、造成什么影响?
由于我们已经给表格上锁,那么这个锁就是全局共享的,将导致以下影响:
(1)、当前会话只能对当前表格进行读写操作。
(2)、其他会话可以对当前表格tablename进行过读写操作时,会阻塞线程。
三、数据库引擎对于锁的优先级
3.1、myIsam
myIsam是对写进程优先的,所以myIsam不适合做"主从复制的"数据库引擎,否则将导致大量的写操作使病发率大大降低。