Postgresql

回收未使用的索引磁碟空間

  • March 17, 2017

是否有任何提示、統計資訊或類似資訊可用於徹底檢查哪些索引可以從 PostgreSQL 9.4.9 數據庫中安全刪除?我們的數據庫不斷增長,我們認為可能會失去一些未使用的索引。過去,我們試圖縮減數據庫的整體大小(現在大約 2TB,主要是歷史數據),但客戶一直需要訪問舊數據,因此我們不得不停止讓舊的“假定未使用”數據過期,因為它可以恢復活力,是一個巨大的痛苦。

任何關於節省空間的額外評論將不勝感激。

也許你可以從:

SELECT *
   FROM pg_stat_all_indexes
   WHERE schemaname NOT IN ( 'pg_catalog', 'pg_toast' )
       AND idx_scan = 0
       AND idx_tup_read = 0
       AND idx_tup_fetch = 0
       AND indexrelid NOT IN (
           SELECT indexrelid
               FROM pg_index
               WHERE indisunique = true
                   OR indisprimary = true ) ;

不能保證彈出的索引從未使用過,但它應該提供一個列表來開始查看。

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