在本次章節介紹hash分割槽和key分割槽
hash分割槽
hash分割槽的一大特點就是可以更平均的將資料分散到各個分割槽中,不會像range分割槽一樣資料可能會集中在乙個分割槽中。hash分割槽簡單來說是基於取模運算結果進行的分割槽。hash分割槽分為常規分割槽和線性分割槽。但是常規分割槽在分割槽管理上過於麻煩,所以我們一般使用線性分割槽。
create table c (
id int not null,
name varchar(20),
*** varchar(20)
)partition by linear hash (id) partitions 4;
以上操作建立了有4個hash分割槽的表c,當插入記錄時,會對插入的id進行2的冪演算法得到分割槽編號。
key分割槽
key分割槽和hash分割槽類似,不過key分割槽只支援伺服器提供的hash函式,hash分割槽只支援整數,key分割槽支援除blob ,text型別外的其他型別作為分割槽鍵。
create table d (
id int not null,
name varchar(20),
job varchar(30) not null
) partition by key (job) partition 4;
以上以job作為分割槽鍵建立key分割槽。如果沒有指定分割槽鍵,那麼會預設主鍵為分割槽鍵,如果沒有主鍵,則預設非空唯一鍵作為分割槽鍵,此時作為分割槽鍵的唯一鍵一定要是非空的,如果可以為空,則會出錯。如果沒有非空唯一鍵,則不能建立分割槽。建表時使用linear key關鍵字,會和linear hash一樣進行2的冪演算法得到分割槽編號。
分割槽管理
合併分割槽:
hash和key分割槽不能像range一樣直接刪除分割槽,不過可以將分割槽由4個合併為2個。
alter table d coalesce partition 2;
增加分割槽:
alter tbale d add parition partitions 8;
以上為增加8個分割槽,不是增加到8個分割槽。這一點對於hash分割槽也是如此
有關分割槽的操作
下面介紹幾個關於檢視表分割槽的操作
查詢表中個分割槽名稱,資料區間,記錄數量,分割槽鍵
檢視表結構
MySql分割槽學習總結一 分割槽概述
mysql分割槽學習總結一 分割槽概述 通過看書和查資料對mysql的分割槽進行了簡單了解。稱還有映像記錄一下,以便將來使用時回顧。分割槽簡述 什麼是分割槽?mysql從5.1以後開始支援分割槽功能。分割槽就是根據一定的規則,將資料庫中的表分為多個更小的部分。但在邏輯上,還是只有乙個表或者乙個索引,...
MySQL學習總結(三)索引
補充一下,上一章節中約束的一點東西。我們在為約束設定名稱的時候 識別符號 推薦寫法 約束縮寫 欄位名 這樣讓人看起來就會很清晰。例如 fk deptno,我們通過索引的名字就可以大概知道這是乙個設定的關於deptno欄位的外來鍵。乙個索引包含表中按照一定順序排序的一列或者多列字段。建立索引主要是為了...
MySQL 分割槽知識點(三)
前言 mysql 分割槽後每個分割槽成了獨立的檔案,雖然從邏輯上還是一張表其實已經分成了多張獨立的表,從 information schema.innodb sys tables 系統表可以看到每個分割槽都存在獨立的 table id 由於 innodb 資料和索引都是儲存在 ibd 檔案當中 從i...