php - 何时、为何以及何处在 Web 应用程序中使用锁定表

标签 php mysql web concurrency transactions

我必须为作品编写一个非常复杂的应用程序。 我之前的软件都是本地使用的软件,不是云端的应用。

我注意到所有修改数据库的查询都会遇到并发问题。 我刚刚在可序列化隔离级别中使用写锁和事务解决了该问题。 但在仅读取查询中我必须进行读取锁定?如果我从表中读取一些记录,而另一个查询删除其中一些记录,会发生什么情况?我有一个脏读。

那么您能解释一下您通常是如何解决查询并发问题的吗?我用的是php. 你通常使用写锁吗?到目前为止我还没有注意到这个问题。我在一家小公司担任 Web 开发人员,但我现在不知道为什么我从未出现在这个解决方案中。

谢谢你,很抱歉我的英语不好。

最佳答案

将写入包装在事务中,不要使用锁。

在 PHP 中,您的应用程序很容易崩溃并留下锁定,导致整个数据库无法使用,直到重置为止。事务在提交、回滚或连接断开时会自动释放。

我认为你所说的大部分内容都是错误的偏执。如果您使用合适的数据库引擎(例如 InnoDB),就不会有问题。

关于php - 何时、为何以及何处在 Web 应用程序中使用锁定表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18493110/

相关文章:

javascript - 禁用选中/取消选中复选框时的输入

php - 如何在谷歌云sql实例上创建数据库

javascript - If/else 语句比较数字

javascript - 输入变化更新价格div

php - LIMIT 并不总是返回相同的行数

javascript - $_POST with javascript – 它在 javascript 中有效,但在 jquery 插件中无效

mysql - 复杂的SQL join 根据给定的结构进行查询

javascript - 使用 chrome 应用 jQuery 动画时出现意外的摇晃效果

php - 带有2个参数的函数内的mysql查询

php - mysql_fetch 问题...我快疯了