1

私のプログラム(ゲームサーバー)は、テーブルから多くのレコードを削除してから、テーブルにも多くのレコードを挿入することがよくあります。ユースケースは次のとおりです。

  1. キャラクターには多くのアイテムがあり、各アイテムにはそれぞれのプロパティがあります。
  2. キャラクターがゲームにロードされると、そのアイテムはメモリに保存されます。
  3. キャラクターがゲームに存在する場合、(キャラクターがゲームにロードされる前の)すべての古いレコードが削除され、プログラムはキャラクターの新しいアイテムをデータベースに挿入し直します。
  4. キャラクターには平均100個のアイテムがあります(アイテムのレコードが100個、アイテムのプロパティがその他100個)

CCUが約1kに達すると、mysqlはそれらの読み取り/書き込みの制御が非常に遅くなります。

MySQLを最適化するために多くの方法を試しますが、それらは十分ではありません。私の一時的な回避策は、MySQLデータフォルダーにSSDディスクを使用することです。

私の質問は、他のDBMS(現在MongoDBを検討中...)を使用する必要があり、何を選択する必要があるかということです。

4

1 に答える 1

1

MySQL は多くのことを処理できますが、頻繁INSERTに ,UPDATEおよびDELETEオプションを使用するテーブルは深刻な劣化を引き起こします。重い負荷の下で MySQL を実行し続けることは可能ですが、このような状況では、別のテーブルまたはデータベースに分割する必要があります。

ただし、MySQL に SSD を使用することはまったく悪い考えではありません。

Redisのような高速なキーと値のストアを中心にシステムを設計できれば、すべてのデータがメモリに収まる限り、必要なすべてのパフォーマンスを実現できます。

于 2013-02-01T16:57:34.310 に答える