发新话题
打印

MySQL锁表心得

MySQL锁表心得

1.MySQL锁表请求有两种方式: read锁和write锁 语法 lock tables t read/write两者的共同点是当执行锁表后除当前进程外其他进程都无法访问该表 除非发生下面三种情况之一:1.该进程执行解锁语句unlock tables 2.该进程执行其他锁表请求 3.该进程退出或断开与MySQL数据库连接;两者不同点是执行read锁的锁表进程只可对该表查询不能修改数据,执行write锁的进程可以有增删改查所有权限 可以理解为后者包含前者 事实上也是后者的优先级比前者要高 通常我都是执行write锁的,下面举例也都以write为例。
    2.进程执行lock tables t write锁表后,如果需要访问到表t1 ,MySQL会报错ERROR 1100: Table ’t1’ was not locked with LOCK TABLES 解决办法:进程一次对多表锁定,语法: lock tables t write,t1 write,… 解锁方法见1,unlock tables 只需执行一次即可。

TOP

发新话题