我想通过activerecord-postgis-adapter gem优化我目前使用postgis的Rails 3.2.13应用程序。
问题在于,当我在表中进行查询时,即使其中只有常规字段(没有地理/几何/这类东西),此查询前面还有postgis“geometry_columns”表上的另一个查询
示例:
(5.6ms) SELECT * FROM geometry_columns WHERE f_table_name='srlzd_infos'
SrlzdInfo Load (1.1ms) SELECT "srlzd_infos".* FROM "srlzd_infos" WHERE "srlzd_infos"."user_id" = 1009 LIMIT 1
但我只在我的Users表/模型中使用postgis。
有谁知道如何避免这些不必要的查询?
谢谢大家。
答案 0 :(得分:0)
我相信这回答了你的问题:https://github.com/rgeo/rgeo/issues/29。从问题:
activerecord适配器发出这些选择以确定数据库的结构。他们没有用武之地。对于上面选择的选择,正是确定该表是否包含任何地理空间列(如果是,它们是哪些列以及它们是如何配置的)。如果您正在使用postgis适配器,那么您可能还会注意到针对pg_attribute的选择,可能还有其他几个。它们都是activerecord发挥其魔力的方式。
好消息是,我相信activerecord会缓存它在非开发环境中收集的所有结构信息,所以你应该看到每个表只选择一次,每个rails进程。它们应该是非常无害的,即使对于没有空间列的表也是如此。