我可以多久更新一行MySQL数据库通过PHP


How frequent can I update a row of MySQL database through PHP?

我创建了一个允许客户端更改背景颜色的页面。例如,提供了5种背景色供选择,并制作了一些按钮用于更改背景色。服务器将在数据库中保存客户端选择的背景色,这样当他们再次访问页面时,他们将看到他们选择的背景色,而不需要任何设置。当客户端单击该按钮时,将向服务器发送一个AJAX请求,PHP脚本将查询和更新数据库中的一行,以记录客户端的选择。

实际上,我已经完成了页面,如果客户没有频繁更改背景颜色,就不会出现问题。例如,如果我点击,在4秒内从红色到蓝色到绿色到白色均匀地变化,这3次变化被识别,最后"白色"将保存在数据库中。但是,如果我在一段时间内(比如不到1秒)再次执行此操作,我会发现一些更新失败。具体来说,我通过$stmt->affected_rows是否返回0来检查它,例如,它可能显示对应于"绿色"answers"白色"的更新已经影响了第0行。

如果某些更新失败,客户端选择的最后一个背景颜色可能不会被保存。此外,限制客户端更改背景的速度也很奇怪。因此,我想知道造成这个问题的原因。

是否达到最快更新频率?还是因为上次更新仍在写入数据并锁定行?MySQL是否可以接收更新查询并将其放入队列,并按顺序处理它们?

我有一种感觉,你的where子句包括旧的颜色值。由于网络竞争条件,您不能保证AJAX请求到达服务器的顺序。在PHP或MySQL中没有任何固有的限制UPDATE语句之间的时间。