我在数据库中有一个表,它可能每分钟接受 x00 次插入,所以它会很快变大。
我应该定期存档这些数据吗?最好的方法是什么?
我目前正在通过交易做这样的事情:
function doArchiveMyTable() {
$transaction->query("
INSERT INTO `archive_my_table`
SELECT * FROM `my_table`
WHERE ...
");
$transaction->query("
DELETE FROM `my_table`
WHERE ...
");
return $transaction->commit();
}
我什至应该打扰吗?如果我丢失数据会很糟糕,但如果数据库很慢也会很糟糕。
关于使用的额外信息:
该数据库由游戏的最终用户使用的 API 使用。该数据库用于存储经常更新的各种分数数据。
它实际上还没有上线,所以我估计任何时候都有 200 个用户,并且每分钟都执行大约 10 次插入。
用户和其他用户可以通过 API 查询其他用户的数据,后端脚本也经常查询这些数据。
所有查询都是 SELECT、INSERT、UPDATE 和偶尔的 DELETE。
用户每分钟查询数据库大约 15 次,但所有这些调用都是在 20 秒的短时间内完成的。