同时导出(备份)和截断(删除)表(即原子)?

时间:2015-02-02 04:20:42

标签: mysql phpmyadmin database-backups mysql-backup

我正在举办论坛"论坛金"。 人们交易很多,赠送它,用它来奖励人们#34;感谢"或"喜欢"帖子,或提高声誉。

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

效果很好。我可以执行总和查询,以确保没有未知来源将论坛黄金引入系统,并确保将所有论坛金奖授予用户。

然而,它完全爆炸了。在短短的几天内,我在表中有超过100,000个条目。我也收到了来自我的webhost的关于慢速mySQL查询警告的邮件,这只是一个简单的SELECT,来自单个记录的表,没有连接,排序,函数如date_add()甚至任何东西。

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

是否有"原子"我可以导出然后删除所有记录,没有任何交易进入?

1 个答案:

答案 0 :(得分:0)

好的,所以我结束了:

  • 创建一个新的TEMP表,
  • 从LOG表中选择所有内容,
  • 将其插入新的TEMP表中,
  • 然后从LOG中删除TEMP表中存在相同记录的所有内容
  • 导出TEMP表
  • 全球取代" INSERT INTO`temp`"进入" INSERT INTO`log`"