我们几乎每次“击中”我们的网站都会这样做。在Heroku主持,运行Postgres。
非常常见的场景......我们模型中的单个方法获得匹配条件的COUNT条记录以及匹配相同条件的LAST记录。
在实际使用中,COUNT通常小于20.该表有大约20个字段,没有大于200个字符。
目前我做两个查询, n = widget.count(条件),然后我做 z = widget.last(条件)
但当然我也可以 allfound = widget.find(条件)然后得到n = allfound.count和z = allfound.last。
哪个“更好”?有什么权衡? (总是权衡,对吗?)
干杯! JP
答案 0 :(得分:1)
我会坚持两个查询,因为:
如果您真的想知道真正的答案,唯一可以确定的方法就是对它进行基准测试。创建一个执行基准测试的Rake任务,然后在Heroku上运行它。
答案 1 :(得分:0)
你查了一下日志吗?你确定Rails在第二种情况下也不会做2个查询吗?