Bilgi şema yavaş ve emin yoludur: bu standartlaştırılmış ve onu destekleyen diğer veritabanlarına büyük ölçüde taşınabilir. Ve büyük sürümlerde çalışmaya devam edecek.
Bununla birlikte, bilgi şemasındaki görüşler çoğu zaman çoğu zaman sadece ölü yük olan katı standartlaştırılmış bir formatta bir araya gelmek için çoğu zaman sistem kataloglarındaki birçok tabloda yer almaktadır . Bu onları yavaşlatır .
Postgres geliştiricileri umut vaat etmiyorlar, ancak temeller (burada ihtiyaç duyulan gibi) ana sürümler arasında değişmeyecek.
psql
(yerel komut satırı arayüzü) elbette hızlı şeridi alır ve kaynağı doğrudan sorgular. psql
Parametre ile-E
başlarsanız , bunun gibi ters eğik çizgi komutlarının arkasındaki SQL \d
görüntülenir. Veya \set ECHO_HIDDEN on
psql komut satırından. Oradan başlayarak sorunuza bir cevap oluşturabilirsiniz.
Bir tablo verildiğinde, bu tablo için sütunların adlarının bir listesine sahip olmak mümkündür.
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;
Sorgulamadaninformation_schema.columns
daha hızlı . Deneyin EXPLAIN ANALYZE
kendiniz görün. Tek seferlik bir arama için hala önemli değil. Ancak, birçok kez tekrarlanan bir sorguda / fonksiyonda kullanıldığında fark yaratabilir.
Ayrıca görünürlükte ince farklılıklar var. Detaylı karşılaştırma: