INNER JOIN与两个大表MySQL之间的VARCHAR

时间:2015-03-18 14:39:09

标签: mysql inner-join bigdata

我正在尝试使用两个VARCHAR(255)字段连接两个大表。

tbl1获得了100.000行 - INNODB

tbl2获得了1.200.000行 - INNODB

列“artno”在两个表中都被编入索引。

我的查询如下所示:

SELECT tbl1.id
FROM tbl1
INNER JOIN tbl2 ON tbl2.artno = tbl1.artno AND tbl2.brand = tbl1.brand

此查询大约需要20秒才能运行。

在VARCHAR上加入表的最佳方法是什么?

我可以以任何方式提高查询的效果吗?

1 个答案:

答案 0 :(得分:0)

最好使用选择索引来执行

我认为这是针对innoDB脚本的 USE INDEX(IDX_artno)

SELECT tbl1.id
FROM tbl1  USE INDEX (IDX_artno) 
INNER JOIN tbl2 USE INDEX (IDX_artno) ON tbl2.artno = tbl1.artno AND tbl2.brand = tbl1.brand