【发布时间】:2013-02-02 13:51:17
【问题描述】:
在我的应用程序中,我有一个“LIKE”SQL 查询,类似于...
Item.where("name LIKE ?", "%"+params[:q]+"%").all
但我只想打 db 1x(在应用程序启动时),因为项目的数量很大,并加载这个通用部分......
Item.all
...进入内存(一个全局变量),这样我以后可以在整个应用程序中,在不同的情况下重用它的内容,并使用一些特定于案例的 Ruby 代码进行优化(参见“LIKE”部分)。
用 Ruby 进行这种“过滤”的最快方法是什么?
【问题讨论】:
-
您是否过早优化?你的应用真的太慢了吗?我想在 Ruby 中应用过滤器的最快(也是最简单)的方法是让数据库处理它..!数据库是为完成此类工作而构建的,而 Ruby 不是。
-
“项目数量巨大”。定义“巨大”。
-
@Veger - 我相信你是对的,我可能太努力避免撞到数据库......
-
@ypercube - 虽然每个条目都包含大量数据,但“巨大”实际上是 5k 个条目。所以,是的,我过早地优化并低估了数据库的力量。谢谢大家!
标签: mysql ruby ruby-on-rails-3