多线程如何与MyISAM一起使用。因为它支持表级锁定? 如果我们请求从同一个表中选择。线程如何在这种情况下起作用
答案 0 :(得分:0)
单独的连接获得单独的线程。单个连接不会使用多个线程。 (MyISAM和InnoDB)
当两个单独的连接(线程)尝试在“相同”时间访问同一个表时,会发生某种锁定。
SELECT
获取一个读锁,它可以防止写入,但不能读取其他读取。 (MyISAM的)
INSERT
和其他写入获取写锁定,防止任何(写入或读取)使用该表。 (MyISAM的)
当连接被阻止时,它会等待,然后最终运行。 (MyISAM的)
InnoDB具有行级锁定(并且没有表级锁定)允许更多的并发性,但还有其他复杂性。
没有充分理由,每个人都应该从MyISAM迁移到InnoDB。