mysql左边连接二进制组

时间:2014-07-17 20:04:25

标签: mysql binary group-by left-join

我有三个表,tag是其中两个表中的列(在第二个表中,多个行中存在相同的标记),它们都设置为Varchar(70)并编入索引为全文。 the_id是第一个表中的一列(它不是主要ID,但被索引为索引)。

所以我的问题是,为什么这个查询需要4到8秒才能响应:

  

SELECT * FROM table_1 LEFT JOIN table_3 ON(table_1.the_id = table_3.id)LEFT JOIN table_2 ON table_1.tag = table_2.tag WHERE table_2.bad = 0 GROUP BY table_1.the_id

(我使用此查询来确保在第二个表中至少有一行没有设置为坏,并且我通过the_id分组不显示具有相似标签的重复条目但是相同的the_id,我用它来通过它的主要ID)加入第三个表格

解释查询:

id  |  select_type  |  table   |  type  |  possible_keys  |  key  |  key_len  |  ref  |  rows  |  Extra
1   |     simple    | table_1  |  ALL   |      tag        | NULL  |   NULL    | NULL  |  2809  | Using temporary; Using filesort
1   |     simple    | table_2  |  ALL   |    bad,tag      | NULL  |   NULL    | NULL  |  3689  | Using where
1   |     simple    | table_3  | eq_ref |    PRIMARY      |PRIMARY|     8     |the_id |    1   |

0 个答案:

没有答案