สคีข้อมูลเป็นวิธีที่ช้าและแน่ใจว่ามันเป็นมาตรฐานและส่วนใหญ่จะพกพาไปยังฐานข้อมูลอื่น ๆ ที่สนับสนุนมัน และมันจะทำงานต่อไปในเวอร์ชันหลัก ๆ
อย่างไรก็ตามมุมมองในสคีมาข้อมูลมักจะเข้าร่วมในตารางจำนวนมากจากแคตตาล็อกระบบเพื่อให้ตรงกับรูปแบบที่ได้มาตรฐานอย่างเข้มงวดซึ่งส่วนใหญ่เป็นค่าขนส่งที่ตายแล้วเกือบตลอดเวลา ซึ่งทำให้พวกเขาช้า
นักพัฒนา Postgres ไม่ได้ให้คำมั่นสัญญา แต่พื้นฐาน (เช่นเดียวกับสิ่งที่ต้องการในที่นี้) จะไม่เปลี่ยนแปลงในเวอร์ชันหลัก
psql
(อินเตอร์เฟสบรรทัดรับคำสั่งดั้งเดิม) ใช้ช่องทางที่รวดเร็วแน่นอนและค้นหาแหล่งข้อมูลโดยตรง หากคุณเริ่มต้นpsql
ด้วยพารามิเตอร์-E
SQL หลังคำสั่งแบ็กสแลชเช่น\d
จะปรากฏขึ้น หรือ\set ECHO_HIDDEN on
จากบรรทัดคำสั่ง psql เริ่มจากตรงนั้นคุณสามารถสร้างคำตอบสำหรับคำถามของคุณ
ให้หนึ่งตารางมันเป็นไปได้ที่จะมีรายชื่อของคอลัมน์สำหรับตารางนี้
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;
เร็วกว่าการสอบถาม information_schema.columns
ลองEXPLAIN ANALYZE
ดูด้วยตัวคุณเอง ยังไม่ค่อยสำคัญสำหรับการค้นหาครั้งเดียว แต่อาจสร้างความแตกต่างหากใช้ในแบบสอบถาม / ฟังก์ชันที่ทำซ้ำหลายครั้ง
นอกจากนี้ยังมีความแตกต่างเล็กน้อยในการมองเห็น เปรียบเทียบรายละเอียด: