本文共 515 字,大约阅读时间需要 1 分钟。
获得read锁定
LOCK TABLE tb_item_01 READ;
测试当前session是否可以查询该表记录,经测试ok。
测试当前session是否可以更新或插入该表记录
测试当前session是否可以查询其他表
测试其他session是否可以查询该表记录,经测试ok。
测试其他session是否可以更新或插入该表记录,经测试阻塞,直到释放读锁。
UNLOCK TABLES;#解锁
测试其他session是否可以查询或更新其他表记录,经测试ok。
获得wirte锁定
LOCK TABLE tb_item_01 WRITE;
当前session对当前表的查询、更新、插入,都ok。
当前session对其他表的查询、更新、插入
其他session对当前表的查询阻塞,需要等待锁被释放。
总结:对MyISAM表的读操作(加读锁),不会阻塞其他进程对同一表的读请求,但会阻塞对同一表的写请求。只有当读锁释放后,才会执行其他进程的写操作。
对MyISAM表的写操作(加写锁),会阻塞其他进程对同一表的读和写请求。只有当读锁释放后,才会执行其他进程的读写操作。
转载地址:http://natmi.baihongyu.com/