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 人のユーザーがいて、すべてのユーザーが 1 分間に約 10 回の挿入を実行していると見積もっています。

ユーザーと他のユーザーは、API をクエリして他のユーザーに関するデータを見つけることができ、バックエンド スクリプトもこのデータを頻繁にクエリします。

すべてのクエリは、SELECT、INSERT、UPDATE、場合によっては DELETE のいずれかです。

ユーザーは 1 分間に約 15 回データベースにクエリを実行しますが、これらの呼び出しはすべて 20 秒という短い時間で行われます。

4

0 に答える 0