0

我在数据库中有一个表,它可能每分钟接受 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 秒的短时间内完成的。

4

0 回答 0