Các giản đồ thông tin là cách chậm chạp và chắc chắn: đó là tiêu chuẩn hóa và phần lớn di động để cơ sở dữ liệu khác có hỗ trợ nó. Và nó sẽ tiếp tục hoạt động trên các phiên bản chính.
Tuy nhiên, các khung nhìn trong lược đồ thông tin thường tham gia vào nhiều bảng từ danh mục hệ thống để đáp ứng một định dạng được chuẩn hóa nghiêm ngặt - nhiều trong số đó chỉ là vận chuyển hàng hóa trong hầu hết thời gian. Điều này làm cho họ chậm .
Các nhà phát triển Postgres không đưa ra lời hứa, nhưng những điều cơ bản (như những gì cần thiết ở đây) sẽ không thay đổi trên các phiên bản chính.
psql
(giao diện dòng lệnh gốc) dĩ nhiên có làn đường nhanh và truy vấn trực tiếp nguồn. Nếu bạn bắt đầu psql
với tham số-E
, SQL đằng sau các lệnh dấu gạch chéo ngược \d
được hiển thị. Hoặc \set ECHO_HIDDEN on
từ dòng lệnh psql. Bắt đầu từ đó bạn có thể xây dựng một câu trả lời cho câu hỏi của bạn.
Cho một bảng, có thể có một danh sách các tên của các cột cho bảng này.
SELECT attrelid::regclass AS tbl
, attname AS col
, atttypid::regtype AS datatype
-- more attributes?
FROM pg_attribute
WHERE attrelid = 'myschema.mytable'::regclass -- table name, optionally schema-qualified
AND attnum > 0
AND NOT attisdropped
ORDER BY attnum;
Nhanh hơn truy vấninformation_schema.columns
. Hãy thử EXPLAIN ANALYZE
xem cho chính mình. Vẫn hầu như không quan trọng cho việc tìm kiếm một lần. Nhưng có thể tạo sự khác biệt nếu được sử dụng trong truy vấn / hàm được lặp lại nhiều lần.
Ngoài ra còn có sự khác biệt tinh tế trong tầm nhìn. So sánh chi tiết: