首页 > 开发 > MySQL > 正文

关于mysql的LOCK疑问

2017-09-08 09:12:04  来源:网友分享
lock table test read;

执行这句后,是不是表示允许其他进程读取该表,但不允许任何进程(包括自己)写(包括DELETE,UPDATE,INSERT)该表?

lock table test read local;

执行这句后,和上句一样,但是支持其他进程insert该表?

lock table test write;

执行这句后,是不是表示只允许当前进程操作该表,其他进程不允许任何对该表的操作,包括select,对么?

lock table test;

执行这句后,默认获得的是什么锁?读还是写?

追加:读锁支持多个进程同时申请吧?

解决方案

lock ...read local 在MyISAM下可以允许其他线程插入数据,而在InnoDB下这个就等效于lock ... read

MySQL不支持 lock table test; 语法,必须指定锁的类型

读锁支持多个进程同时申请