祝大家星期五愉快!距離課程開始的時間越來越少
處於開發階段
在 PostgreSQL 10 中,我們看到了「聲明式分區」的誕生,該功能旨在解決許多使用舊的繼承方法無法解決的問題。這導致了一個更強大的工具,使我們能夠水平分割資料!
特性比較
PostgreSQL 11 引入了一組令人印象深刻的新功能,有助於提高效能並使分區表對應用程式更加透明。
1. 使用限制性例外
2.僅新增節點
3. 僅適用於引用非分區表的分區表
4.索引必須包含分區的所有鍵列
5. 兩側的截面限制必須匹配
Производительность
我們這裡也有好消息!新增了新方法 WHERE
。先前的演算法依序檢查每個部分以確定是否滿足條件 WHERE
。隨著部分數量的增加,規劃時間也隨之增加。
在 9.6 中,透過繼承進行分區,將元組路由到分區通常是透過編寫觸發器函數來完成的,該函數包含一系列 IF 語句以將元組插入到正確的分區中。這些函數的執行速度可能非常慢。透過在版本 10 中新增聲明性分割區,此操作速度更快。
使用具有 100 個分區的分區表,我們可以評估將 10 萬行載入到具有 1 個 BIGINT 列和 5 個 INT 列的表中的效能。
查詢該表以尋找一條索引記錄並執行 DML 操作一筆記錄的效能(僅使用 1 個處理器):
這裡我們可以看到自PG 9.6以來各個操作的效能都有了顯著的提升。要求 SELECT
看起來好多了,尤其是那些能夠在查詢規劃期間排除多個分區的分區。這意味著調度程序可以跳過很多它之前應該完成的工作。例如,不再為不必要的部分建立路徑。
結論
表格分區開始成為 PostgreSQL 中非常強大的功能。 它允許您快速在線顯示數據並將其離線,而無需等待緩慢、大量的 DML 操作完成。。這也意味著相關資料可以儲存在一起,這意味著可以更有效地存取您需要的資料。如果沒有開發人員、審查者和提交者在所有這些功能上的不懈努力,這個版本中所做的改進是不可能實現的。
感謝他們所有人! PostgreSQL 11 看起來棒極了!
這是一篇簡短但非常有趣的文章。分享您的評論,別忘了註冊
來源: www.habr.com