在這一章節里, 我們來了解下 Mysql 中的分區技術 (RANGE, LIST, HASH)
Mysql 的分區技術與水平分表有點類似, 但是它是在邏輯層進行的水平分表, 對于應用而言它還是一張表, 換句話說: 分區不是實際真正的對一張表進行拆分,分區之后表還是一個表,它是把存儲文件進行拆分。
在 Mysql 5.1(后) 有了幾種分區類型:
RANGE分區: 基于屬于一個給定連續區間的列值, 把多行分配給分區
LIST分區: 類似于按 RANGE 分區, 區別在于 LIST 分區是基于列值匹配一個離散值集合中的某個值來進行選擇
HASH分區: 基于用戶定義的表達式的返回值來進行選擇分區, 該表達式使用將要插入到表中的這些行的列值進行計算, 這個函數可以包含 Mysql 中有效的、產生非負整數值的任何表達式
KEY分區: 累世于按 HASH 分區, 區別在于 KEY 分區只支持計算一列或多列, 且 Mysql 服務器提供其自身的哈希函數
分區應該注意的事項:
1、 做分區時,要么不定義主鍵,要么把分區字段加入到主鍵中
2、 分區字段不能為NULL,要不然怎么確定分區范圍呢,所以盡量 NOT NULL
首先你可以查看下你的 Mysql 版本是否支持 PARTITION
新聞熱點
疑難解答