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. psqlParametre ile-E başlarsanız , bunun gibi ters eğik çizgi komutlarının arkasındaki SQL \dgörüntülenir. Veya \set ECHO_HIDDEN onpsql 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 ANALYZEkendiniz 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: