Postgresql
建議使用不等於 (<>) where 條件的 Postgresql 索引類型
我需要查詢兩個巨大的表(超過百萬條記錄)。除了其他條件外,在類型的列對上還有一個不等於 (
<>
)條件。它必須排除百萬分之一。where``varchar
該列中的值是唯一的,在兩個表中都相同,因此我必須從兩個表中排除在該特定列中具有相同值的行。
標準 b 樹類型索引是否合適,或者其他索引類型是否更適合不等於 (
<>
)where
條件?
pg-strom
擴展呢?(利用 GPU)可以pg-strom
提高where
子句中不相等比較的速度嗎?
pg-strom 擴展怎麼樣?pg-strom(利用 GPU)能否提高 where 子句中不相等比較的速度?
除非操作可以利用高度並行處理,否則使用 GPU 毫無意義。簡單
<>
可能不在案例中。也就是說,Pg 9.6 應該使用簡單並行索引掃描。我需要查詢兩個巨大的表(超過百萬條記錄)。除了其他條件之外,在 varchar 類型的列對上還有一個不等於 (<>) where 條件。它必須排除百萬分之一。
排除百萬分之一的索引可能不會計劃使用索引。我們在這裡需要一個測試案例,或者讓您顯示實際的查詢。
就這樣想吧。
- 場景一,您訪問磁碟上的一百萬行。您需要 999,999 行。
- 場景二,您訪問索引中的一百萬行——這不是免費的。你需要 999,999。在確定不需要哪一行之後,您仍然需要訪問磁碟上的 999,999 行。
你更願意做什麼?如果您必須訪問(幾乎)所有行,那麼索引不會為您節省任何工作。