在哪里放过filter - in where子句或from子句?

时间:2014-03-06 04:29:45

标签: mysql

最近,我一直在使用FROM子句来启用我的过滤器,例如:

SELECT *
FROM (SELECT ? as userid, ? as timestamp) param
   JOIN session_member a ON a.sessMemeberId = userid
   JOIN session b ON b.sessId = a.sessId AND b.status = 'open'
   JOIN session_content c ON c.sessId = a.sessId AND c.sessTimestamp > timestamp

而不是

SELECT *
FROM session
   JOIN session_member USING (sessId)
   JOIN session_content USING (sessId)
WHERE
   status = 'open' AND
   sessMemberId = ? AND
   sessTimestamp > ?

原因是,通过使用第一种方法,我希望内存使用尽可能少,因为行计数将提前过滤,甚至在加入另一个相关表之前。

我的问题是,这是真的吗?因为我从未在网上听过这样的做法,而且我无法做基准测试,因为我从不处理能够清楚显示性能差异的大型数据库。

0 个答案:

没有答案