Goz*_*zup 5 gis postgis ruby-on-rails rails-postgresql ruby-on-rails-3.2
我想通过 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
Run Code Online (Sandbox Code Playgroud)
但我只在我的用户表/模型中使用 postgis。
有谁知道我怎样才能避免那些不必要的查询?
谢谢你们。
小智 1
我相信这回答了您的问题:https://github.com/rgeo/rgeo/issues/29。从问题来看:
activerecord 适配器发出这些选择来确定数据库的结构。它们并非无用。在上面提到的选择的情况下,精确地确定该表是否包含任何地理空间列(如果是,则它们是哪些列以及它们的配置方式)。如果您使用的是 postgis 适配器,那么您可能还会注意到针对 pg_attribute 的选择,可能还有其他一些选择。它们都是 activerecord 发挥其魔力的一部分。
好消息是,我相信 activerecord 会缓存它在非开发环境中收集的所有结构信息,因此您应该在每个表、每个 Rails 进程中仅看到这些选择一次。它们应该几乎是无害的,即使对于没有空间列的表也是如此。
| 归档时间: |
|
| 查看次数: |
240 次 |
| 最近记录: |