gpt4 book ai didi

mysql - 分页和并发更新

转载 作者:行者123 更新时间:2023-11-29 18:33:56 41 4
gpt4 key购买 nike

假设有一个包含数据的表products

id | product | amount
---------------------
1 | keyboard| 1
2 | monitor | 2
3 | computer| 3
4 | mouse | 4

用户A通过两个产品从该表中加载数据。所以他这么做了SELECT * FROM products ORDER BY amount LIMIT 2 OFFSET 0 他得到了 ID 为 12 的产品。然而,当用户A正在读取两个第一个位置时,用户B更改了表中的数据,因此它变成了

id | product | amount
---------------------
1 | keyboard| 3
2 | monitor | 1
3 | computer| 3
4 | mouse | 1

现在 UserA 需要其余数据,因此他执行 SELECT * FROM products ORDER BY amount LIMIT 2 OFFSET 2 并获得 ID 为 24< 的产品 这不是他所期望的。

因此,我们在这里看到,如果有多个用户,并且某些用户进行更新,而其他用户正在阅读某些页面,则分页会出现问题。此类问题如何解决?当然,在实际示例中,有数千行+连接。

最佳答案

在上面的示例中,按变量排序是一个挑战。

解决这个问题的一种方法是,

  • 在示例中,在将下一页查询结果数据绑定(bind)到列表之前,检查结果中的任何项目是否已在上一个查询中获取。如果是这样,请使用其更新值更新这些列表项,并跳过再次添加它们。这必须在客户端完成。

最好通过添加“LastModificationTime”等字段来审核此类数据,该字段指示该行上次修改的时间,并将其与其他列一起显示。

关于mysql - 分页和并发更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45466719/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com