1
- 인덱스는 postgresql의 and 절에 사용할 수 있습니까?
- 테이블 관계에서 하나 또는 여러 맵핑을해야 할 때 혼란 스럽습니다. 아무것도 또는 기사를 제안하십시오.
- n : n 관계가 기본 키와 외래 키가있는 매핑 테이블 1 : n과 매핑되어야하는 이상적인 방법이 있습니다. 귀하의 도움에 감사드립니다.
postgresql에서 and 절에 인덱스를 사용할 수 있습니까?
postgresql에서 and 절에 인덱스를 사용할 수 있습니까?
물론 인덱스는 AND
과 함께 사용할 수 있습니다. 두 가지 예 :
test=> EXPLAIN (COSTS OFF) SELECT attname FROM pg_attribute
WHERE attrelid = 'pg_class'::regclass AND attnum = 1;
QUERY PLAN
------------------------------------------------------------------
Index Scan using pg_attribute_relid_attnum_index on pg_attribute
Index Cond: ((attrelid = '1259'::oid) AND (attnum = 1))
(2 rows)
이렇게하면 두 조건에 한 번에 여러 열 인덱스가 사용됩니다. 이 인덱스 스캔 필터로서 사용되는 제 2 상태 – 대한 인덱스가없는 상태
test=> EXPLAIN (COSTS OFF) SELECT attname FROM pg_attribute
WHERE attrelid = 'pg_class'::regclass AND attlen = 64;
QUERY PLAN
------------------------------------------------------------
Bitmap Heap Scan on pg_attribute
Recheck Cond: (attrelid = '1259'::oid)
Filter: (attlen = 64)
-> Bitmap Index Scan on pg_attribute_relid_attnum_index
Index Cond: (attrelid = '1259'::oid)
(5 rows)
여기서 인덱스는 상기 첫 번째 조건에 사용될 수있다. PostgreSQL에서는 AND
에 인덱스를 사용할 수 있습니다. 각 조건은 다른 인덱스를 사용할 수 있습니다. 이는 비트 맵 인덱스 스캔과 함께 사용되며 두 조건 모두에서 BitmapAnd 및과 결합됩니다. 일반적으로 여러 열 인덱스보다 성능이 좋지 않지만 대규모 분석 쿼리를 수행하는 방법이 될 수 있습니다.
, 3 은 다 대다 (m 라고도 : N 관계) 관계는 항상 매핑 테이블로 모델링됩니다. 매핑 테이블의 기본 키는 대개 두 테이블의 기본 키 조합입니다 (Wikipedia article 참조).
일대 관계 (도 1 전화 : N 관계는)는 항상 '하나'측에 '많은'측면에서 외래 키와 함께 구현된다.