请求读锁 请求写锁
当前处于读锁 是 是 否
当前处于写锁 是 否 否
可见,对MyISAM表的读操作,不会阻塞其他用户对同一表的读请求,但会阻塞对同一表的写请求;
对MyISAM表的写操作,则会阻塞其他用户对同一表的读和写请求...,来解决应用中对同表查询和插入的锁争用
例如,将concurrent_insert系统变量设为2,总是允许并发插入;
同时,通过定期在系统空闲时段执行OPTIONMIZE TABLE语句来整理空间碎片,...例如,两个编辑人员制作了同一文档的电子副本。每个编辑人员独立地更改其副本,然后保存更改后的副本,这样就覆盖了原始文档。...应用中,不同的程序会并发存取多个表
尽量约定以相同的顺序访问表
程序批处理数据时
事先对数据排序,保证每个线程按固定的顺序来处理记录
在事务中,要更新记录
应直接申请排他锁,而不应该先申请共享锁
在可重复读下...6 总结
6.1 MyISAM的表锁
共享读锁之间是兼容的,但共享读锁和排他写锁之间,以及排他写锁之间互斥,即读写串行
在一定条件下,MyISAM允许查询/插入并发,可利用这一点来解决应用中对同一表查询