背景
1、産品的問題點
- PG 統計資訊無法遷移
2、問題點背後涉及的技術原理
- PG 的優化器需要依靠統計資訊來計算SQL的代價、選擇性等.
- 統計資訊包括記錄數、SIZE、每一列的高頻詞、柱狀圖、唯一值個數、等等.
- PG 支援表達式統計資訊、自定義多列統計資訊等.
- PG 支援手工的analyze, vacuum analyze文法來生成統計資訊.
- 但是PG的統計資訊無法導出、導入, 如果發生備份恢複動作, 需要重新收集統計資訊.
3、這個問題将影響哪些行業以及業務場景
- 通用
-
- 通常發生在大版本更新、大量資料邏輯遷移或恢複的場景中.
4、會導緻什麼問題?
- 大版本更新後, 無統計資訊, 如果資料庫立即開放給業務使用, 可能導緻執行計劃不準确, 引起性能問題甚至影響業務
- 大量資料通過邏輯導出導入時, 導入結束後需要收集統計資訊, 如果未及時收集統計資訊就開放給業務使用的話, 可能導緻SQL執行計劃不準确, 引起性能問題甚至影響業務
5、業務上應該如何避免這個坑
- 大版本更新、大量資料通過邏輯導出導入後, 收集統計資訊後再開放給業務使用.
6、業務上避免這個坑犧牲了什麼, 會引入什麼新的問題
- 收集統計資訊需要掃描資料, 相比直接導出導入更耗時.
7、資料庫未來産品疊代如何修複這個坑
- 希望核心層面支援統計資訊導出、導入.