我在 MySQL 中的 UNION 查询有问题。我们的网站上有 1000 万玩家,我们希望选择具有多标准系统的玩家。例如,选择美国人,男性,年龄超过 35 岁。
我们正在使用“垂直分区”:每个标准 1 个表。例如:
* user_country
- id_user
- id_country
Run Code Online (Sandbox Code Playgroud)
我们想做这样的查询:
SELECT id_inscri FROM userdata_langue
WHERE id_langue='43'
UNION
SELECT id_inscri FROM userdata_sexe
WHERE sexe='2'
UNION
SELECT id_inscri FROM userdata_nb_jour
WHERE nb_jour>='31'
UNION
SELECT id_inscri FROM userdata_last
WHERE last<='2013-04-07'
AND last>='2013-04-03' ;
Run Code Online (Sandbox Code Playgroud)
我该如何优化?
- - - 更多细节
解释查询的输出:
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY userdata_langue ref id_langue id_langue 1 const 398846 Using index
2 UNION userdata_sexe ref …Run Code Online (Sandbox Code Playgroud)