在数据库查询过程中,使用order by null 强制实现对结果禁用排序。如果查询的结果的顺序不重要,可以采用order by null。特别是用group by 分组查询。在无order by null通过EXPLAIN 查看语句性能的时候,可以看到Extra列多了Using filesort,严重影响了性能。
例如:
SELECT
MAX(tr.AddTime) AS l_a_time,
tr.TermId AS ID
FROM
termcoupon_relationship AS tr,
term AS t
WHERE tr.TermId = t.ID
AND tr.Status = 'online'
AND t.Status = 'active'
AND t.IsSuperTerm != 'yes'
AND t.CountryCode = 'DE'
GROUP BY TermId
HAVING l_a_time < '2016-01-03' order by null
MAX(tr.AddTime) AS l_a_time,
tr.TermId AS ID
FROM
termcoupon_relationship AS tr,
term AS t
WHERE tr.TermId = t.ID
AND tr.Status = 'online'
AND t.Status = 'active'
AND t.IsSuperTerm != 'yes'
AND t.CountryCode = 'DE'
GROUP BY TermId
HAVING l_a_time < '2016-01-03' order by null