私のプログラム(ゲームサーバー)は、テーブルから多くのレコードを削除してから、テーブルにも多くのレコードを挿入することがよくあります。ユースケースは次のとおりです。
- キャラクターには多くのアイテムがあり、各アイテムにはそれぞれのプロパティがあります。
- キャラクターがゲームにロードされると、そのアイテムはメモリに保存されます。
- キャラクターがゲームに存在する場合、(キャラクターがゲームにロードされる前の)すべての古いレコードが削除され、プログラムはキャラクターの新しいアイテムをデータベースに挿入し直します。
- キャラクターには平均100個のアイテムがあります(アイテムのレコードが100個、アイテムのプロパティがその他100個)
CCUが約1kに達すると、mysqlはそれらの読み取り/書き込みの制御が非常に遅くなります。
MySQLを最適化するために多くの方法を試しますが、それらは十分ではありません。私の一時的な回避策は、MySQLデータフォルダーにSSDディスクを使用することです。
私の質問は、他のDBMS(現在MongoDBを検討中...)を使用する必要があり、何を選択する必要があるかということです。