我需要为排队系统使用一张桌子。该表将不断更新。
例如,我网站上的多个用户将添加他们的文件以供处理,我听说当多个用户同时进行更新时,该表将变得无响应或类似情况。
那么在这种情况下我需要锁定表吗?我如何将锁应用于mysql表?
最佳答案
一次执行多个更新时,您将陷入僵局。诸如InnoDB之类的引擎将检测到此情况,并使您的事务之一失败(您可以重试,但只能重试整个事务)。
您可以通过表锁定来避免这种情况,但是它会降低并发性。
诸如MyISAM之类的引擎(无论如何都不支持MVCC或事务)无论如何都隐式使用表锁定。这样的表锁仅在查询期间存在。在不再需要该表之后,它们会很快自动释放(不一定要尽快,但很快)
我建议您不要使用LOCK TABLE,除非您确实需要使用它。如果遇到死锁,请重试该事务。
关于mysql - 如何锁定MySQL或phpmyadmin中的表?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1996219/