私は MySQL の使用にかなり慣れていないので、プレイヤーのインベントリ アイテムをデータベースに保存する最も効率的な方法を理解しようとしています。
セットアップは次のとおりです。
'player'というテーブルがあり、各プレイヤーには、テーブルのプライマリ インデックスとして設定される一意の 'playerid'が割り当てられます。
各プレーヤーはインベントリに最大 24 個のアイテムを持つことができ、それらのアイテムに関する情報は'player_inventory'というテーブルに保存されます。このテーブルには次のフィールドがあります。
playerid、slotid、uid、スタック、用途、耐久性
'uid'はアイテムの ID であり、'stack'、'uses'および'durability'は各アイテムに必要な値です (たとえば、別のスロットにある同じタイプのアイテムは'durability'が低くなる可能性があります)。
問題は、プレイヤーごとに最大 24 のスロット エントリがあり、他のフィールドが一意であることが保証されていないため、インベントリ テーブルの「playerid」にインデックスを設定できないことです。
したがって、このテーブルに 10000 人のプレイヤーのインベントリがある場合、このテーブルにクエリを実行すると、インデックスのない 240,000 エントリが潜在的に存在する可能性があるのではないかと心配しています。
データベースを最適化する方法についての知識はかなり限られていますが、アドバイスは大歓迎です。