정보 스키마는 느리고 확실한 방법이다 : 그것은 표준화를 지원하는 다른 데이터베이스에 주로 휴대용입니다. 그리고 주요 버전에서도 계속 작동합니다.
그러나 정보 스키마의 뷰 는 종종 표준 카탈로그 형식을 충족시키기 위해 시스템 카탈로그의 많은 테이블에 조인됩니다 . 이것은 그들을 느리게한다 .
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
직접 보려고 노력 하십시오. 일회성 조회에는 여전히 문제가되지 않습니다. 그러나 여러 번 반복되는 쿼리 / 함수에 사용하면 차이가 발생할 수 있습니다.
가시성에도 미묘한 차이가 있습니다. 자세한 비교 :