在 Rails 中查找对象时,最好先组合查询条件然后执行查询,还是从不太严格的条件开始并对结果执行数组操作以缩小我想要的范围。我想知道哪一个会执行得更快和/或标准使用。
问问题
147 次
1 回答
1
如果可能,在 SQL 中缩小结果通常会更快,因此如果查询不太复杂,请根据需要添加尽可能多的查询条件。在 Ruby 中运行代码以缩小结果并不比 SQL 快,因为无论如何都会解释 Ruby。
但是,使用 SQL 缩小结果范围的好处是:
- 如果索引的列上有查询条件(例如,为 created_by 添加索引,然后查找在特定时间范围内创建的结果)或该列上的排序子句,则通过索引搜索结果要快得多
- 从 SQL 数据库到 Ruby/Rails 的通信更少(如果在同一台计算机上,则速度会略有提高,否则数据库在单独的计算机上,使用更少的带宽 - 结果返回更快)
于 2012-08-17T00:42:17.987 回答