我有这两张桌子。
表1中有1000万个条目,其中包含gameid和gamename列 表2中有几千个条目具有列userid和gamename。我希望通过映射两个表中的游戏名来为每个用户获取相应的gameid。
我的查询就像这样
SELECT game.id FROM game RIGHT JOIN player ON game.game_name=player.game_name
但这就像花了很多年。什么是有效的方法呢?
答案 0 :(得分:2)
如果您希望快速查找,请在game(game_name, gameid)
上创建索引。
这应该是合理的,假设game
表中的重复名称很少。如果有,您的问题也可能是返回的数据量很大。
答案 1 :(得分:2)
考虑使用......
EXPLAIN SELECT game.id FROM game RIGHT JOIN player ON game.game_name=player.game_name
初始EXPLAIN
将让MySQL通过对here输出的良好解释告诉您它正在做什么。
您最有可能想要game.game_name
和player.game_name
上的某种索引。