MySQL锁表心得

这篇文章前面写了两次 这是第三次 第一次写到一半的时候 在给关键句子加标颜色时,我的傲游弹出一个内存错误,我知道 白写了 第二次重写 越写越发现自己了解的只是皮毛,原意是写一篇指导性的文章 后来越写越汗颜,写不下去了 这是第三次 写成一个心得吧 权当自己留个备注 不敢在网页上直接写了 还是在word里写好贴过来吧

 

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 只需执行一次即可

 

       待续

 

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页