Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql RubyonRails:取代;例如;SQL查询的一部分,使用Ruby代码_Mysql_Ruby_Ruby On Rails 3 - Fatal编程技术网

Mysql RubyonRails:取代;例如;SQL查询的一部分,使用Ruby代码

Mysql RubyonRails:取代;例如;SQL查询的一部分,使用Ruby代码,mysql,ruby,ruby-on-rails-3,Mysql,Ruby,Ruby On Rails 3,在我的应用程序中,我有一个“LIKE”SQL查询,类似于 Item.where("name LIKE ?", "%"+params[:q]+"%").all 但是我只想点击db 1x(在应用程序启动时),因为项目的数量是巨大的,并加载这个通用部分 Item.all …存储在内存中(一个全局变量),因此我可以在不同的情况下在整个应用程序中重用它的内容,并使用一些特定于具体情况的Ruby代码进行优化(请参见“LIKE”部分) 使用Ruby进行这种“过滤”的最快方法是什么?您可以使用它吗?您是否过

在我的应用程序中,我有一个“LIKE”SQL查询,类似于

Item.where("name LIKE ?", "%"+params[:q]+"%").all
但是我只想点击db 1x(在应用程序启动时),因为项目的数量是巨大的,并加载这个通用部分

Item.all
…存储在内存中(一个全局变量),因此我可以在不同的情况下在整个应用程序中重用它的内容,并使用一些特定于具体情况的Ruby代码进行优化(请参见“LIKE”部分)


使用Ruby进行这种“过滤”的最快方法是什么?

您可以使用它吗?

您是否过早地进行了优化?你的应用程序真的太慢了吗?我认为在Ruby中应用过滤器最快(也是最简单)的方法是让数据库来处理它。。!数据库是为了做这些工作而建立的,Ruby不是。定义“巨大”。@Veger-我相信你是对的,我可能是太努力了,以避免击中数据库…@ypercube-虽然每个条目都包含大量数据,“巨大”实际上是5k个条目。所以,是的,我过早地优化和低估了数据库的能力。谢谢大家!的确,低级别缓存可能比使用全局变量更好(对于我问题中的缓存部分)。但我的具体情况是一个自动完成下拉菜单,它当然会生成大量不同的查询,这些查询很快就会出现(即每次用户向查询项添加另一个字符)。由于可能存在大量不同的LIKE查询,低级别缓存无法合理地解决我问题中的“LIKE”部分。。。