【发布时间】:2016-12-22 11:42:15
【问题描述】:
我有 5 个表并且都有依赖项,所以我编写了这个查询来获取数据并且它工作正常,但是性能很差,所以你能提出一些概念吗?
SELECT a.*,cg.*,c.*,qt.*,ct.*
FROM MYB.choice_table ct
RIGHT OUTER JOIN MYB.question_table qt ON ct.questionID = qt.questionID
RIGHT OUTER JOIN MYB.category_table c ON c.categoryID = qt.categoryID
RIGHT OUTER JOIN MYB.categoryGroup_table cg ON cg.categoryGroupID=c.categoryGroupID
RIGHT OUTER JOIN MYB.audit_table a ON a.auditID=cg.auditID
WHERE a.auditID=123
【问题讨论】:
-
尽可能将
right join替换为inner join -
所有表都正确索引了吗?
-
虽然阅读右外连接总是有点困难,但查询看起来不错并且应该很快。当然,前提是所有 ID 都应有约束和索引。