Postgresql

建議使用不等於 (<>) where 條件的 Postgresql 索引類型

  • October 6, 2017

我需要查詢兩個巨大的表(超過百萬條記錄)。除了其他條件外,在類型的列對上還有一個不等於 ( &lt;&gt;)條件。它必須排除百萬分之一。where``varchar

該列中的值是唯一的,在兩個表中都相同,因此我必須從兩個表中排除在該特定列中具有相同值的行。

標準 b 樹類型索引是否合適,或者其他索引類型是否更適合不等於 ( &lt;&gt;)where條件?

pg-strom擴展呢?(利用 GPU)可以pg-strom提高where子句中不相等比較的速度嗎?

pg-strom 擴展怎麼樣?pg-strom(利用 GPU)能否提高 where 子句中不相等比較的速度?

除非操作可以利用高度並行處理,否則使用 GPU 毫無意義。簡單&lt;&gt;可能不在案例中。也就是說,Pg 9.6 應該使用簡單並行索引掃描。

我需要查詢兩個巨大的表(超過百萬條記錄)。除了其他條件之外,在 varchar 類型的列對上還有一個不等於 (<>) where 條件。它必須排除百萬分之一。

排除百萬分之一的索引可能不會計劃使用索引。我們在這裡需要一個測試案例,或者讓您顯示實際的查詢。

就這樣想吧。

  1. 場景一,您訪問磁碟上的一百萬行。您需要 999,999 行。
  2. 場景二,您訪問索引中的一百萬行——這不是免費的。你需要 999,999。在確定不需要哪一行之後,您仍然需要訪問磁碟上的 999,999 行。

你更願意做什麼?如果您必須訪問(幾乎)所有行,那麼索引不會為您節省任何工作。

引用自:https://dba.stackexchange.com/questions/185809