小编典典

SQL查询-性能优化

sql

我不太擅长SQL,因此我要求你们提供有关编写查询的帮助。
[SQL查询-表连接问题]https://codingdict.com/questions/208252)
我得到了答案,并且可以正常工作!它只是明显的缓慢。我讨厌这样做,但是我真的希望有人在那里推荐一些优化查询的方法。我什至没有自己尝试过,因为我对SQL不够了解,甚至无法开始使用谷歌搜索。


阅读 209

收藏
2021-04-14

共1个答案

小编典典

可能有帮助的是在要加入的列上创建索引。例如;

CREATE INDEX name_for_index ON Main (StatusID);

它将为此列生成一个查询表,执行查询的算法将使用该表。

编辑:如果您不允许更改数据库,则可能不走运。我已经看到在某些情况下放宽JOIN语句可以改善性能,那就是这样。

...
FROM
  Main m, Status st, Secondary s
WHERE
  st.ID = m.StatusID
  AND s.MainID = m.ID
  AND 
  ( s.MainID IS NULL AND m.WhenDate = <YourDate>
    OR
    s.MainID IS NOT NULL AND s.WhenDate = <YourDate> )
  AND TypeId = <TypeFilter>
  AND ... other filters, if you need any ...

然后处理您的其他情况,其中INNER JOIN需要更加详细。

2021-04-14