0

次のテーブルがあり、selectでこのテーブルの最も効率的なインデックスシステムを作成する方法を知りたいです。行が挿入されると、行が更新されることはありません。

CREATE TABLE `games_characters` (
  `game_id` int(11) DEFAULT NULL,
  `character_id` int(11) DEFAULT NULL,
  KEY `games` (`game_id`),
  KEY `characters` (`character_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8; 

または、このようなものの方が良いでしょうか:

CREATE TABLE `games_characters` (
  `game_id` int(11) DEFAULT NULL,
  `character_id` int(11) DEFAULT NULL,
  PRIMARY KEY `game_to_characters` (`game_id`, `character_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

または、3番目のより良いオプションはありますか?

games_charactersシングルが10を超えることgameはなく、挿入されると変更されません。

ありがとう

4

1 に答える 1

3

2番目のオプションは適切に機能すると思います。ただし、game_id と character_id が主キーになる場合、それらは「DEFAULT NULL」にはなりません。お役に立てば幸いです。

編集: MyISAM エンジンはクエリに対して高速です。

于 2013-01-23T16:45:14.280 に答える