我正在尝试使用两个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上加入表的最佳方法是什么?
我可以以任何方式提高查询的效果吗?
答案 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