我有一個大的Postgres表(150GB +),它在兩個變量val1和val2之間存儲一個大的相關矩陣。例如:查詢一個大的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)
理想我想運行下面的查詢,讓我對特定值的所有記錄(10000在我的例子)
SELECT *
FROM sliding_window_distances
WHERE (val1 = 10000)
OR (val2 = 10000)
我不知道如何加快查詢。
添加額外的UNIQUE約束(val2,val1)。 (這將創建一個索引) – wildplasser