2010-09-21 32 views
6

Ngoài việc xóa một số truy vấn cụ thể của MySQL, quá trình di chuyển khá trơn tru. Vấn đề bây giờ là, trong quá trình phát triển, có rất nhiều truy vấn tới DB hơn trước đây.Di chuyển từ MySQL sang Postgres trên Rails 3

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 

Mỗi truy vấn đơn lẻ có 3-8 truy vấn bổ sung như trên. Điều gì và tại sao lại xảy ra? Một trong những vấn đề hiện nay là, developement.log là bloated và unreadable. Tôi lãng phí vô số thời gian di chuyển Inbetween những truy vấn tìm kiếm những điều đúng đắn ...

Cập nhật: Tue Sep 21

này không liên quan đến các loại truy vấn. Tất cả các truy vấn đang tạo ra loại stuph:

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 dòng trong bộ ree-1.8.7-2010.02>

+0

Đăng truy vấn tạo báo cáo. Có thể bạn đang sử dụng một số mã hướng MySQL. –

+1

Không phải trường hợp, giải thích được thêm vào câu hỏi. – mdrozdziel

Trả lời

4

Tôi đã đánh cắp bài đăng này từ một bài đăng khác: Bạn có thể muốn xem http://github.com/dolzenko/silent-postgres Plugin đó loại bỏ các truy vấn đó. Những tiếng ồn đăng nhập xảy ra vì mức độ đăng nhập cao postgresql.

+0

Điều này hoạt động như một sự quyến rũ, cảm ơn! – mdrozdziel

1

Các truy vấn thứ hai được sử dụng bởi ứng dụng của bạn để có được thông tin về kiểu dữ liệu được sử dụng và để xem liệu cột có thể vô hiệu hay không. Nếu bạn đang sử dụng pgAdmin3, bạn sẽ thấy rất nhiều loại truy vấn này, chỉ để lấy dữ liệu meta của kết quả. Hầu hết các ứng dụng không cần truy vấn như thế này, nó chủ yếu là hữu ích trong quá trình phát triển và cho các công cụ như pgAdmin.

+0

Ok, nhưng có cách nào để vô hiệu hóa điều này trong quá trình phát triển. Tôi không thể theo dõi nhật ký của tôi nữa. Nó nhận được thực sự gây phiền nhiễu ... – mdrozdziel

+0

Chỉnh sửa postgresql.conf và đặt log_min_duration_statement thành 1000. 1000 = 1000 mili giây, 1 giây. Bạn cũng có thể đặt log_min_error_statement thành ERROR. Bạn phải tải lại postgresql.conf như một superuser: SELECT pg_reload_conf(); Bạn có thể khởi động lại máy chủ cơ sở dữ liệu của bạn. –

Các vấn đề liên quan