MySQL分區

原創轉載請註明出處:http://agilestyle.iteye.com/blog/2358878

 

分區

分區是一種表的設計模式。正確的分區可以極大地提升數據庫的查詢效率,完成更高質量的SQL編程。但是如果錯誤的使用分區,或者過於迷信分區,那麼分區可能帶來毀滅性的結果。

 

MySQL數據庫在5.1版本時添加了對分區的支持。分區的過程是將一個表或者索引分解爲多個更小、更可管理的部分。就訪問數據庫的應用而言,從邏輯上講,只有一個表或一個索引,但是在物理上這個表或索引可能由數十個物理分區組成。每個分區都是獨立的對象,可以獨自處理,也可以作爲一個更大對象的一部分進行處理。

 

MySQL數據庫支持的分區類型爲水平分區,並不支持垂直分區。

  • 水平分區:指將同一個表中不同行的記錄分配到不同的物理文件中
  • 垂直分區:指將同一個表中不同列的記錄分配到不同的物理文件中

此外MySQL的分區是局部分區索引,一個分區中既存放數據又存放索引。全局分區是指,數據存放各個分區中,但是所有數據的索引放在一個對象中。目前MySQL數據庫暫時不支持全局分區。

 

當前MySQL數據庫支持以下幾種類型的分區

  • RANGE分區:行數據基於一個給定連續區間的列值放入分區。MySQL5.5開始支持RANGE COLUMNS的分區
  • LIST分區:和RANGE分區類型一樣,只是LIST分區面向的離散的值。MySQL5.5開始支持LIST COLUMNS的分區
  • HASH分區:根據用戶自定義表達式的返回值來進行分區,返回值不能爲負數。
  • KEY分區:根據MySQL數據庫提供的散列函數來進行分區

Reference

MySQL技術內幕:SQL編程 姜承堯 著

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章