天天看點

【DB吐槽大會】第73期 - PG 統計資訊無法遷移

背景

1、産品的問題點

  • PG 統計資訊無法遷移

2、問題點背後涉及的技術原理

  • PG 的優化器需要依靠統計資訊來計算SQL的代價、選擇性等.
  • 統計資訊包括記錄數、SIZE、每一列的高頻詞、柱狀圖、唯一值個數、等等.
  • PG 支援表達式統計資訊、自定義多列統計資訊等.
  • PG 支援手工的analyze, vacuum analyze文法來生成統計資訊.
  • 但是PG的統計資訊無法導出、導入, 如果發生備份恢複動作, 需要重新收集統計資訊.

3、這個問題将影響哪些行業以及業務場景

  • 通用
    • 通常發生在大版本更新、大量資料邏輯遷移或恢複的場景中.

4、會導緻什麼問題?

  • 大版本更新後, 無統計資訊, 如果資料庫立即開放給業務使用, 可能導緻執行計劃不準确, 引起性能問題甚至影響業務
  • 大量資料通過邏輯導出導入時, 導入結束後需要收集統計資訊, 如果未及時收集統計資訊就開放給業務使用的話, 可能導緻SQL執行計劃不準确, 引起性能問題甚至影響業務

5、業務上應該如何避免這個坑

  • 大版本更新、大量資料通過邏輯導出導入後, 收集統計資訊後再開放給業務使用.

6、業務上避免這個坑犧牲了什麼, 會引入什麼新的問題

  • 收集統計資訊需要掃描資料, 相比直接導出導入更耗時.

7、資料庫未來産品疊代如何修複這個坑

  • 希望核心層面支援統計資訊導出、導入.