在上週的文章中,我們了解了在處理大型資料集時使用資料庫分割的潜在用途和優勢。在今天的後續文章中,我們將使用雜湊分區準則在 Navicat for MySQL 中建立一個 MySQL 分割區。
在 Navicat 中啟動分割區對話方塊
在 Navicat 中,你可以在資料表設計器的「選項」索引標籤(頁面底部)找到「分割區」按鈕:
按一下此按鈕開啟「分割區」對話方塊。
在資料表中建立雜湊分割區
「分割區」對話方塊中的第一個控制項是分割由下拉式清單:
支援的分割類型取決於資料庫類型和版本。以下是你可以在 Navicat 中找到 MySQL 7 的選項:
- Range Partitioning(範圍分割):範圍(或間隔)分割在組織類似的資料時非常有用,尤其是日期和時間資料。因此,範圍分割是分割歷程記錄資料的理想方法。
- List partitioning(清單分割):根據離散值明確地將列對應至分割區。例如,南部各州的所有客戶都可以儲存在一個分割區中,而北部各州的客戶則可以儲存在不同的分割區中。
- Composite partitioning(複合分割):以分割區鍵為基礎標識的多元分割區。例如,你可能決定以唯讀壓縮格式儲存特定產品類型的資料,並保持其他產品類型資料未壓縮。複合分割還顯著增加了分割區的數量,這可能有利於高效的平行執行。
- Round-robin partitioning(循環分割):以迴圈方式向每個分割區指派列,以便每個分割區包含的列數目或多或少相等,從而實現負載平衡。在這種情況下,沒有分割區鍵,因此列隨機分佈在所有分割區。
- Hash partitioning(雜湊分割):以雜湊演算法在分割區之間隨機分佈資料,而不是將相似的資料分組。儘管可以識別分割區鍵,在分割區資料應該位於哪個分割區中並不明顯的情况下仍非常有用。因此,資料的分佈使得它與業務或資料的邏輯檢視不對應,就像它在範圍分割中所做的那樣。
一些注意事項
為了從分割中獲益,你需要確保:
- 如果你確實提供了要對資料表進行分割的欄,則說明它是該資料表中每個唯一鍵的一部分。
- 你正在按査詢中最常用的欄對資料表進行分割。否則,建立分割區將沒有任何好處。
定義分割區詳細資訊
「分割區」對話方塊支援許多選項,包括子分割區以及手動建立分割區定義的功能。但是,對於一個簡單的雜湊分割區,我們只需要提供分割區準則、(資料表欄)和分割區數目:
按一下「確定」按鈕,一步輕鬆地建立分割區!
在「SQL 預覽」索引標籤中,你可以檢視由 Navicat 產生的 SQL 陳述式:
ALTER TABLE `sakila2`.`film` PARTITION BY HASH (actor) PARTITIONS 10 (PARTITION `p0` MAX_ROWS = 0 MIN_ROWS = 0 , PARTITION `p1` MAX_ROWS = 0 MIN_ROWS = 0 , PARTITION `p2` MAX_ROWS = 0 MIN_ROWS = 0 , PARTITION `p3` MAX_ROWS = 0 MIN_ROWS = 0 , PARTITION `p4` MAX_ROWS = 0 MIN_ROWS = 0 , PARTITION `p5` MAX_ROWS = 0 MIN_ROWS = 0 , PARTITION `p6` MAX_ROWS = 0 MIN_ROWS = 0 , PARTITION `p7` MAX_ROWS = 0 MIN_ROWS = 0 , PARTITION `p8` MAX_ROWS = 0 MIN_ROWS = 0 , PARTITION `p9` MAX_ROWS = 0 MIN_ROWS = 0 ) ;
總結
在今天的文章中,我們使用雜湊分割準則在 Navicat for MySQL 中建立了一個 MySQL 分割區。
如果你對 Navicat for MySQL 感興趣,可以免費試用 14 天!
Rob Gravelle 居住於加拿大渥太華,是一名有 20 多年經驗的 IT 專家。過住,Rob 曾為情報相關的組織(如加拿大邊境服務局和各種商業組織)建置系統。在業餘時間,Rob 是一名出色的吉他演奏家,並擁有多張 CD和數位發行。