锁定表
lock table table1 locktype ,table2 locktype
lock type代表锁定类型
- read 被锁定的数据表对全体MySQL用户可读,但不允许修改
- read local 类似read,允许不影响任何现有记录的insert命令执行
- write 被锁定的数据表允许当前用户读写
- lock priority write 类似write,但它在等待其他read和write lock锁全部结束时,允许其他用户先施加一个新的read lock
unlock table,解除当前用户设置的所有lock
MySQL在执行单条命令时,不必使用锁定机制,在执行多条彼此独立的命令,而且这些命令执行时不允许其他客户修改正在使用的数据时,才需要使用锁定机制。
不要对InnoDB数据表使用LOCK和UNLOCK命令,用事务来锁定有关记录。
如果只需要锁定两个进程之间的通信,可以好似用get_lock和release_lock函数,get_lock(name,time)函数定义一把锁,其中name是锁的名字,time是锁的持续时间。
do get_lock(‘abc’,10)
release_lock(name)
get_lock函数执行后,其他进程就不能获得一把与之同名的锁,而数据表不会因为它们而锁定