优化正确的连接

时间:2009-09-10 06:10:25

标签: sql mysql

以下查询按预期工作。但我想有足够的优化空间。有什么帮助吗?

SELECT   a.cond_providentid,
      b.flag1
FROM     c_master a
WHERE    a.cond_status = 'OnService'
ORDER BY a.cond_providentid,
         a.rto_number; 

1 个答案:

答案 0 :(得分:2)

我是否可以建议将查询放在数据库视图中的左连接中 - 这样,代码可以更清晰,更易于维护。

另外,检查您经常使用最多的列。它可能是索引的候选者,这样当您运行查询时,它可以更快。

您也可以检查您的列数据类型......我看到您有这种类型的代码:

  

(CASE               当b.tray_type为空时               然后1               ELSE 0             END)flag2

如果您有机会更改表的设计,(iebTray_Type为bit,或使用计算列来确定标志),它将运行得更快,因为您不必使用Case语句来确定标志。您可以将其添加为查询的另一列。

希望这有帮助! :)