我试图使用两个VARCHAR(255)字段连接两个大表。
tbl1得到100000行-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上加入表的最佳方式是什么?
我能以任何方式提高查询的性能吗?

最佳答案

最好使用select索引来执行
我认为它是用于innoDB脚本作为使用索引(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

关于mysql - 在两个大表MySQL之间使用VARCHAR进行INNER JOIN,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29124965/

10-11 21:52