PolarDB分區表完全兼容原生MySQL的語法和功能。同時,PolarDB分區表相對于原生MySQL進行了性能增強,支持豐富的分區類型及組合,使您可以更加便捷、簡單和高效的使用分區表。
分區表是將一個大的邏輯表,按照分區規則分割成多個小的物理表, 大的邏輯表為分區表,小的物理表為分區,每一個分區在存儲引擎上獨立組織管理數據和索引。分區規則主要包括RANGE、LIST、HASH三種,您需要指定分區鍵, 根據分區鍵字段的值按照這三種規則把數據劃分到不同的分區。PolarDB還支持創建混合分區,可以將每個分區放在不同的存儲引擎上。Orders表做二級分區的示意圖如下:
優勢
豐富的分區類型及組合。
支持RANGE、LIST、HASH和LIST DEFAULT HASH分區及其分區的任意組合,使得分區表具有更加靈活的數據分治能力。
支持INTEVAL RANGE分區,讓分區運維自動化更加簡單高效。
支持INNODB和OSS混合分區,助力您的業務降本增效。
支持在不同分區下創建不同的索引(Partial index)及全局二級索引(Global Secondary Index),更好的滿足基于分區的HTAP交易和查詢負載對表索引的不同要求。
提升性能。
分區剪枝(Partition Pruning):在查詢數據時,優化器會根據查詢條件和分區元數據自動過濾不符合條件的分區,減少數據掃描,PolarDB還支持分區動態剪枝(Partition Dynamic Pruning)功能,幫助您提升查詢效率。
分區連接(PartitionWise Joins):在連接分區時,根據分區條件將分區表打散成分區與分區之間的連接,過濾不符合條件的分區之間的連接,把連接的數據控制在最小范圍內,提高查詢效率。
統計信息管理:相比普通表,以分區粒度進行的信息統計和管理,更加精確和靈活,從而支持選擇更優的查詢計劃。
支持并行查詢加速,為基于分區的大表方案提供成倍性能提升。
加強數據管理能力。
索引創建、刪除和重建:以分區為單位進行索引的創建、刪除和重建。
備份和恢復: 以分區粒度進行數據備份和恢復。
降低成本。
分區可以根據數據重要性、數據存儲性能、數據存儲可靠性和數據存儲形式多種維度進行存儲。
功能優化和性能增強
相對于原生MySQL,PolarDB如下功能得到了優化,性能得到了增強:
類型 | 優化項 | 相關文檔 | |
擴展分區類型 | 支持全類型二級分區 | 支持HASH/KEY分區下面做二級分區 | |
二級分區支持RANG/LIST類型 | |||
支持二級分區的Partition Pruning | |||
支持二級分區粒度上的部分DDL操作 | |||
List Default [Hash]分區類型 | 支持List Default [Hash]分區 | ||
支持List Default [Hash]分區下面做二級分區 | |||
二級分區支持List Default分區 | |||
支持通過reorganize從default [Hash]分區分離出List分區 | |||
支持通過reorganize List分區合并到default [Hash]分區 | |||
支持通過reorganize改變default hash分區的個數 | |||
支持List default Hash分區的Partition Pruning | |||
支持List Default Hash分區、ONLINE ADD List分區 | |||
Interval Range分區類型 | 支持Interval Range分區 | ||
Interval Range支持Hash二級分區 | |||
支持分區索引 | 部分索引(Partial Index) | Partial Index支持一級分區 | |
Partial Index支持二級分區 | |||
支持一級/二級分區粒度的索引DDL操作(ADD/DROP/REBUILD Index) | |||
支持Partial Index的Index Pruning | |||
統計信息支持Partial Index | |||
Hybrid Partition表支持 Partial Index | |||
List Default Hash分區支持Partial Index | |||
全局二級索引(Global Secondary Index) | 支持CREATE/DROP全局二級索引 | ||
支持DML和大部分表級的DDL | |||
支持全局二級索引的Online DDL | |||
支持unique的全局二級索引 | |||
Query優化 | 查詢優化器 | 支持Partial Partition Wise join | 無 |
支持Partition動態剪枝 | |||
支持Partition Index Pruning | |||
支持分區粒度的統計信息(Hyperloglog) | |||
分區表支持分區間的并行掃描 | |||
支持全局索引優化器選擇和并行掃描 | |||
支持分區與MPP相結合 | |||
分區粒度MDL鎖 | ADD/DROP PARTITION支持分區粒度的MDL鎖 | ||
EXCHANGE PARTITION支持分區粒度的MDL鎖 | |||
REBULD/REORGANIZE PARTITION支持分區粒度的MDL鎖 | |||
二級分區支持子分區粒度的MDL鎖 | |||
DDL功能 | 普通表與分區表的ONLINE DDL | 普通表轉分區表ONLINE DDL用于歷史數據轉Range分區表 | |
Hybrid Partition | 支持不同類型的存儲引擎 |