1. 程式人生 > >【Mysql】mysql分割槽入門1—簡介

【Mysql】mysql分割槽入門1—簡介

一 什麼是資料庫分割槽?

 資料庫分割槽是一種物理資料庫設計技術,DBA和資料庫建模人員對其相當熟悉。雖然分割槽技術可以實現很多效果,但其主要目的是為了在特定的SQL操作中減少資料讀寫的總量以縮減響應時間。

 分割槽的作用

分割槽的作用:資料庫效能的提升和簡化資料管理

(1) 在掃描操作中,mysql優化器只掃描儲存資料的那個分割槽,以減少掃描範圍獲得性能的提高。

(2) 分割槽技術使得資料管理變得簡單,刪除某個分割槽不會對另外的分割槽造成影響,分割槽有系統直接管理不用手工干預。

 分割槽主要有兩種形式:

 水平分割槽(Horizontal Partitioning) 這種形式分割槽是對錶的行進行分割槽,通過這樣的方式不同分組裡面的物理列分割的資料集得以組合,從而進行個體分割(單分割槽)或集體分割(1個或多個分割槽)。所有在表中定義的列在每個資料集中都能找到,所以表的特性依然得以保持。

舉個簡單例子:一個包含十年發票記錄的表可以被分割槽為十個不同的分割槽,每個分割槽包含的是其中一年的記錄。(注:這裡具體使用的分割槽方式我們後面再說,可以先說一點,一定要通過某個屬性列來分割,譬如這裡使用的列就是年份)

垂直分割槽(Vertical Partitioning) 這種分割槽方式一般來說是通過對錶的垂直劃分來減少目標表的寬度,使某些特定的列被劃分到特定的分割槽,每個分割槽都包含了其中的列所對應的行。

舉個簡單例子:一個包含了大text和BLOB列的表,這些text和BLOB列又不經常被訪問,這時候就要把這些不經常使用的text和BLOB了劃分到另一個分割槽,在保證它們資料相關性的同時還能提高訪問速度。

二、       mysql分割槽型別

根據所使用的不同分割槽規則可以分成幾大分割槽型別。

[1] RANGE 分割槽:基於屬於一個給定連續區間的列值,把多行分配給分割槽。

[2] LIST 分割槽:類似於按RANGE分割槽,區別在於LIST分割槽是基於列值匹配一個離散值集合中的某個值來進行選擇。

[3] HASH分割槽:基於使用者定義的表示式的返回值來進行選擇的分割槽,該表示式使用將要插入到表中的這些行的列值進行計算。這個函式可以包含MySQL中有效的、產生非負整數值的任何表示式。

[4] KEY分割槽:類似於按HASH分割槽,區別在於KEY分割槽只支援計算一列或多列,且MySQL伺服器提供其自身的雜湊函式。必須有一列或多列包含整數值。

[5] 複合分割槽:基於RANGE/LIST 型別的分割槽表中每個分割槽的再次分割。子分割槽可以是 HASH/KEY 等型別。