我需要做一个查询,从各个表中获取列 - 总共5个表。我很高兴获得左连接的要点,并获得我需要的结果,唯一的问题是速度。我在索引/键上输了一些,可能是因为我的例子对于我在网上阅读的所有例子都不是很典型。我的表中的“唯一”ID不是所有表中的主键,因为该表可能有多行(历史/审计目的)。 id在多个表格(##/###和## - ###)中也有不同的格式,所以匹配它们的函数可能会导致大幅减速。到目前为止,粘贴我的代码可能会更容易(只有3个表格 - 直到我可以先征服3个表格才能完成所有这些工作!),并且有人可以建议如何使用索引和键进行改进。MySQL优化三元左连接
SELECT dc.URN,dc.GuideName,dc.GuideStreet,ss.categorycalc,pm.initiatedate
FROM dc
LEFT JOIN pm
ON dc.URN = pm.URN
LEFT JOIN ss
ON dc.URN = replace(ss.URN,"/","-")
WHERE dc.GuidePCode LIKE 'WA9%'
ORDER BY pm.Status ASC;
我将不胜感激更少的意见,刚开始的数据库一切都结束了“做正确”等等 - 有很多的已经编码中插入数据在某些方面某些表程序。因此,改变唯一ID的结构以及将它写入某些表的方式是不切实际的。我只需要关注这个我已经掌握的数据报告。 “WA9”部分将根据用户想要搜索的内容而改变。
该查询的[查询执行计划](http://dev.mysql.com/doc/refman/5.5/en/execution-plan-information.html)是什么?从那里开始或发布结果并显示每个表的“CREATE TABLE”语法和索引。问题中没有足够的信息继续。 – drew010