gpt4 book ai didi

mysql - 替换 MySQL 表中的全部数据

转载 作者:行者123 更新时间:2023-11-30 23:32:10 25 4
gpt4 key购买 nike

对于游戏,我正在尝试实现一个分数表。根据游戏逻辑,分数通常会在一个用户完成一轮时发生变化,每隔几分钟发生一次;但不能保证两个用户会同时完成。

为了不在每次用户检查分数时都重新计算分数,我计划将分数数据保存在一个持久表中,该表将在每次回合完成时更新。

我计划在

TRUNCATE TABLE scores; INSERT INTO SCORES SELECT ....

但我担心的是当两个用户同时完成时会发生什么。我在一个连接中传递整个查询(来自 ASP.NET,如果这很重要),但是两个查询一起被认为是原子的吗?或者您是否建议我必须实现手动交易逻辑?

如果您建议事务,将查询包含在“BEGIN TRAN...END TRAN”中就足够了吗?您是否建议为该“分数”表使用 MyISAM 或 InnoDB?

如果重要的话,我的 MySQL 版本是 5.0.92-log。

最佳答案

只有在事务内执行的两个查询才是原子查询。即便如此,它们对世界其他地方来说也只是原子的。在事务内部它仍然是两个完全独立的操作。

交易不会保护您免受两个以上用户对数据集进行操作的影响。您仍然必须在相关表上建立锁以防止并发访问。

关于mysql - 替换 MySQL 表中的全部数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10019663/

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