请求读锁 请求写锁
当前处于读锁 是 是 否
当前处于写锁 是 否 否
可见,对MyISAM表的读操作,不会阻塞其他用户对同一表的读请求,但会阻塞对同一表的写请求;
对MyISAM表的写操作,则会阻塞其他用户对同一表的读和写请求...;
MyISAM表的读和写操作之间,以及写和写操作之间是串行的!...(当某一线程获得对一个表的写锁后,只有持有锁的线程可以对表进行更新操作.其他线程的读、写操作都会等待,直到锁被释放为止)
2.2 如何加表锁
对于 MyISAM 引擎
执行select前,会自动给涉及的所有表加...读
执行更新(update,delete,insert)会自动给涉及到的表加 写
不需要用户直接显式用lock table命令
对于给MyISAM显式加锁,一般是为了在一定程度上模拟事务操作,实现对某一个时间点多个表一致性读取...的锁调度
MyISAM的读和写锁互斥,读操作串行的
一个进程请求某个MyISAM表的读锁,同时另一个进程也请求同表的写锁,MySQL如何处理呢?