Postgresql
Postgres 命中率:是否應該從生產數據庫中刪除大歷史表?
數據庫具有以下記憶體命中率:
table A: 0.006 table B: 0.955 table C: 0.023
表 A 和 C 是歷史表。沒有關係,內容大,不需要快速查詢,只有很少的讀取請求。我尋找一個功能來告訴 Postgres 忽略這些表的記憶體,但徒勞無功。
是不是很簡單,如果從數據庫中刪除表 A 和 C,它會自動增加表 B 的記憶體命中率?(假設數據量相同)
PostgreSQL總是記憶體它讀取的頁面,沒有辦法避免這種情況。刪除表 A 和 C 可能會提高表 B 的記憶體命中率,但不會提高多少,因為沒有太大的改進空間。可能表 B 的某些部分並未經常使用。
在我看來,PostgreSQL 已經在做你希望它做的事情:表 A 和 C 中的頁面從記憶體中刪除,而 B 中的頁面大部分都留在記憶體中。