我必须为作品编写一个非常复杂的应用程序。 我之前的软件都是本地使用的软件,不是云端的应用。
我注意到所有修改数据库的查询都会遇到并发问题。 我刚刚在可序列化隔离级别中使用写锁和事务解决了该问题。 但在仅读取查询中我必须进行读取锁定?如果我从表中读取一些记录,而另一个查询删除其中一些记录,会发生什么情况?我有一个脏读。
那么您能解释一下您通常是如何解决查询并发问题的吗?我用的是php. 你通常使用写锁吗?到目前为止我还没有注意到这个问题。我在一家小公司担任 Web 开发人员,但我现在不知道为什么我从未出现在这个解决方案中。
谢谢你,很抱歉我的英语不好。
最佳答案
将写入包装在事务中,不要使用锁。
在 PHP 中,您的应用程序很容易崩溃并留下锁定,导致整个数据库无法使用,直到重置为止。事务在提交、回滚或连接断开时会自动释放。
我认为你所说的大部分内容都是错误的偏执。如果您使用合适的数据库引擎(例如 InnoDB),就不会有问题。
关于php - 何时、为何以及何处在 Web 应用程序中使用锁定表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18493110/