小编Fra*_*ois的帖子

优化 MySQL 中的 UNION 查询

我在 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)

mysql optimization union

6
推荐指数
1
解决办法
6667
查看次数

标签 统计

mysql ×1

optimization ×1

union ×1