左连接多列性能?

假设我有2张桌子:

table1 :(20.000 records)
id    code1    code2   something    status

table2: (7.500 records)
id    code1    code2    name

我想要的是通过使用此QUERY列出table1中的所有记录以及table2中的“名称”:

SELECT DISTINCT `tb1`.*, `tb2`.`name` FROM `table1` AS `tb1`
LEFT JOIN `table2` AS `tb2`
ON (tb1.code1 = tb2.code1 AND tb1.code2 = tb2.code2)
WHERE (tb1.status = 1)

但是检索数据花费了我很长时间(5分钟后我仍然看不到结果).

做这个的最好方式是什么?

提前致谢..

解决方法:

请尝试使用column(code1,code2,status)在table1上添加索引.如果表1中的列过多,也可以将它们添加到索引中.在MS SQL中,我们具有“包含列”,可以将其添加到索引中.也许mysql有类似的东西.

使用列(code1,code2,name)在table2上添加索引.

如果您担心索引大小,则只需为index1保留(code1,code2,status),并为index2保留(code1,code2).

希望这可以帮助.

上一篇:PHP-为什么这段代码这么快?


下一篇:linux-在流程调用之间传输数据