次の画像に示すように、テーブル「キーワード」と「モデル」の間にam:nの関係があるHTML5マルチプレイヤーゲームを開発しています。
keyword.id
およびmodel.id
はauto_incrementunsignedintでkeyword.keyword
あり、一意のインデックスです。
効率を上げるために、関係を管理する方法を探しています。ささいな方法は次のようになります。
- キーワードがすでに存在するかどうかを確認します
- はいの場合:更新
timesCount
してroundCount
からmodel_has_keyword
- いいえの場合:
insert into keyword
およびinsert into model_has_keyword
しかし、同時にプレイするユーザーの数が増えるにつれ、些細な方法が遅くなりすぎるのではないかと心配しています。では、これを行うための最も効率的な方法は何ですか?
StackOverflowを検索しているときに、2つのアイデアに困惑しましたが、どちらも私のニーズに合わないと思います。
INSERT INTO table ON DUPLICATE KEY UPDATE col=val
処理される場合INSERT INTO
は、別のステートメントをトリガーして両方のテーブルに挿入する必要がありますINSERT INTO
。keyword
model_has_keyword
REPLACE
ステートメント:テーブルキーワードのレコードを置き換えるとid
、次の自動インクリメント値が割り当てられるため、テーブルの参照model_has_keyword
が失われます。
私は専門家ではないので、ここで何か誤解した場合は訂正してください。