Mysql- MyISAM 多线程的工作原理

Mysql- MyISAM how Multi threading works

多线程如何与 MyISAM 一起工作。因为它支持 Table 级锁定? 如果我们从同一个 table 请求 select。在这种情况下线程是如何工作的

单独的连接获得单独的线程。单个连接不会使用多个线程。 (MyISAM 和 InnoDB)

当两个单独的连接(线程)试图在 "same" 时访问同一个 table 时,会发生某种锁定。

SELECT 获取读锁,这会阻止写入,但不会阻止其他读取。 (MyISAM)

INSERT 和其他写操作获取一个写锁,防止任何东西(写或读)与 table 一起工作。 (MyISAM)

当连接被阻塞时,它会等待,然后最终运行。 (MyISAM)

InnoDB,其行级锁定(没有 table 级锁定)允许更高的并发性,但具有其他复杂性。

没有充分的理由,每个人都应该从 MyISAM 转移到 InnoDB。