项目中有一条sql语句涉及到四个表的联查问题,最多的一个表只有3000条记录(discussions表),而其他的3个表最多100条记录,但是执行速度非常慢了。 以后要是数据再增加,程序也无法运行。请各位帮忙看看这条sql语句应该如何优化呢?
SELECT DISTINCT Projects.ProjectID,ProjectName,Stage,FullName,JobNumber,Units,MAX(Discussions.Created) AS LastPost FROM Projects LEFT JOIN Discussions ON Projects.ProjectID = Discussions.ProjectID LEFT JOIN Users ON Projects.ManagerID = Users.UserID LEFT JOIN ProjectUsers ON Projects.ProjectID=ProjectUsers.ProjectID WHERE Projects.IsRFQ='0' AND (Projects.ManagerID='15' OR ProjectUsers.UserID='15' OR Projects.CreatedByID='15' ) GROUP BY Projects.ProjectID,ProjectName,Stage,FullName哪里导致执行速度这么慢?有什么办法能够提高执行效率?谢谢!