我正在使用innoDB块,我试图模拟我在生产服务器上遇到的问题。当试图在MYSQL中的“事务”表中插入一行时。我使用以下命令锁定了表:在此之后,我从我的web应用程序创建一个事务,事务被锁阻止。问题是这个事务永远被阻塞。通过运行以下命令,我可以在MYSQL中看到它在等待:
show full proce
我一直在阅读两期锁定的内容,并了解到这涉及两个阶段:
1.我的问题是,两相锁定(而不是“严格的两相锁定”)机制如何知道它何时开始收缩阶段?除非DB知道事务中的所有查询(这违背了两阶段锁定机制的全部要点,这种机制应该能够在不知道事务中的所有查询的情况下确保可序列化),否则无法判断事务是否需要获得更多的锁。test_tab set age=100 w