두 개의 변수 val1과 val2 사이에 큰 상관 행렬을 저장하는 큰 Postgres 테이블 (150gb +)이 있습니다. 예 :대형 Postgres 상관 관계 테이블 쿼리
val1 | val2 | distance
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _
0 | 1 | 10
0 | 2 | 21
0 | 3 | 13
1 | 2 | 65
1 | 3 | 43
2 | 3 | 56
쌍 (val1, val2)은 테이블의 복합 기본 키입니다. 아래 쿼리를 실행할 때 쿼리가 35ms 미만에서 실행된다는 것을 알았습니다.
SELECT *
FROM sliding_window_distances
WHERE (val1 = 10000)
그러나 val2를 사용하여 검색하면 실행되지 않고 시간이 초과됩니다.
SELECT *
FROM sliding_window_distances
WHERE (val2 = 10000)
이상적으로 나는 (내 예제에서 10,000)를 특정 값에 대한 모든 기록을 가질 수 있도록 내가 쿼리를 빠르게하는 방법을 잘 모르겠어요
SELECT *
FROM sliding_window_distances
WHERE (val1 = 10000)
OR (val2 = 10000)
, 아래의 쿼리를 실행하려면 .
가 추가 UNIQUE 제약 조건에 대한 추가 밖으로 잠그지 않고 인덱스를 생성하려면
테이블에 기록 (val2, val1). (이 색인을 만들 것입니다) – wildplasser