1
在rails应用程序中,我在外部数据库上做了一些请求。在NewRelic的,当我在看SQL请求我有这样的:跳过ActiveRecord提出的额外请求
2.997 718 ms SHOW FULL FIELDS FROM `whale`
3.717 721 ms SHOW VARIABLES WHERE Variable_name = 'character_set_client'
4.440 728 ms SHOW TABLES LIKE 'whale'
5.169 668 ms SHOW CREATE TABLE `whale`
5.839 731 ms SELECT id, `whale`.`name` FROM `whale`
正如你可以看到,所有的请求需要很长的时间,所以我希望尽量减少他们。我只需要最后的结果。
这是我简单的控制器:
class AnimalsController < ApplicationController
def index
MicsPix.pluck(:id, :name)
render text: 'ok'
end
end
而且我的模型:
class MicsPix < ActiveRecord::Base
establish_connection(:otherdb)
def self.table_name
"whale"
end
end
有没有跳过查询比我不使用的解决方案?我不一定要使用ActiveRecord。
+1自己编写SQL的很好的例子。额外的数据库请求使AR能够获取关于数据库的元数据。据推测AR的好处是衡量其成本。如果你只想做一个简单的查询,那么你可以自己生成SQL,如Albin所示。 – 2014-11-04 08:11:55