【发布时间】:2010-09-21 08:32:03
【问题描述】:
除了删除一些 MySQL 特定查询之外,迁移非常顺利。现在的问题是,在开发过程中对数据库的查询比以前多得多。
Started GET "/profiles/data" for 127.0.0.1 at Tue Sep 21 10:26:18 +0200 2010
Processing by ProfilesController#data as JSON
User Load (24.3ms) SELECT "users".* FROM "users" ORDER BY updated_at DESC LIMIT 1
CACHE (0.0ms) SELECT "users".* FROM "users" ORDER BY updated_at DESC LIMIT 1
SQL (10.5ms) SELECT a.attname, format_type(a.atttypid, a.atttypmod), d.adsrc, a.attnotnull
FROM pg_attribute a LEFT JOIN pg_attrdef d
ON a.attrelid = d.adrelid AND a.attnum = d.adnum
WHERE a.attrelid = '"users"'::regclass
AND a.attnum > 0 AND NOT a.attisdropped
ORDER BY a.attnum
每个查询都会产生 3-8 次类似上述的额外查询。发生了什么以及为什么会发生?现在的问题之一是,developement.log 臃肿且不可读。我浪费了大量时间在这些查询之间滚动寻找正确的东西......
更新:9 月 21 日星期二
这与查询类型无关。所有的查询都在产生这种愚蠢:
ree-1.8.7-2010.02 > User.first
SQL (0.3ms) SHOW client_min_messages
SQL (2.0ms) SET client_min_messages TO 'panic'
SQL (6.3ms) SET standard_conforming_strings = on
SQL (18.3ms) SET client_min_messages TO 'notice'
SQL (15.6ms) SET time zone 'UTC'
SQL (17.2ms) SHOW TIME ZONE
SQL (23.8ms) SELECT tablename FROM pg_tables WHERE schemaname = ANY (current_schemas(false))
User Load (162.4ms) SELECT "users".* FROM "users" LIMIT 1
SQL (7.5ms) SELECT a.attname, format_type(a.atttypid, a.atttypmod), d.adsrc,
a.attnotnull FROM pg_attribute a LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid
AND a.attnum = d.adnum WHERE a.attrelid = '"users"'::regclass AND a.attnum > 0 AND
NOT a.attisdropped ORDER BY a.attnum
[...] 1排成套 ree-1.8.7-2010.02 >
【问题讨论】:
-
发布生成语句的查询。您可能正在使用一些面向 MySQL 的代码。
-
不是这样,问题中添加了解释。
标签: ruby-on-rails postgresql ruby-on-rails-3