-1

我正在主持一个带有“论坛黄金”的论坛。人们经常交易,赠送它,用它奖励人们“感谢”或“喜欢”的帖子,或者增加声誉。

但是,我担心可能会有一些漏洞允许人们将黄金侵入他们的论坛帐户,因此我添加了登录每个论坛黄金交易的功能。

它运作良好。我可以执行总和查询以确保没有未知来源将论坛金币引入系统,并确保所有奖励给用户的论坛金币都被计算在内。

然而,它彻底爆发了。在短短几天内,我的表中就有超过 100,000 个条目。我还从我的网络主机收到了关于缓慢的 mySQL 查询警告的邮件,这只是从单个记录的表中进行的简单 SELECT,没有连接、排序、诸如 date_add() 之类的函数或任何东西。

所以我想用日志完全导出并清空表。现在,我通常通过 phpmyadmin 中的“导出”功能备份数据库的其余部分。但是,此表非常活跃,每秒添加 10 到 50 条新行,但我希望通过不丢失任何记录来保持计算的完整性和准确性。

是否有一种“原子”方式我可以导出然后删除所有记录,中间没有交易?

4

1 回答 1

0

好的,所以我刚刚结束:

  • 创建一个新的 TEMP 表,
  • 从 LOG 表中选择所有内容,
  • 将其插入到新的 TEMP 表中,
  • 然后从 LOG 中删除 TEMP 表中存在相同记录的所有内容
  • 导出 TEMP 表
  • 将“INSERT INTO `temp`”全局替换为“INSERT INTO `log`”
于 2015-02-02T05:44:16.507 回答