毎分 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 秒という短い時間で行われます。