定義
使用myisam引擎的一張表主要對應著三個檔案,一個是frm存放表結構的,一個是myd存放表數據的,一個是myi存表索引的。如果一張表的數據量太大的話,那么myd,myi就會變的很大,查找數據就會變的很慢,這個時候我們可以利用mysql的分區功能,在物理上將這一張表對應的三個檔案,分割成許多個小塊,這樣呢,我們查找一條數據時,就不用全部查找了,只要知道這條數據在哪一塊,然後在那一塊找就行了。如果表的數據太大,可能一個磁碟放不下,這個時候,我們可以把數據分配到不同的磁碟裡面去。
使用innoDB引擎的/mysql/data/資料庫名目錄下一張表有一個frm檔案存放數據結構,其他的數據部分全部都存在在/mysql/data目錄下的ibdata檔案中。
類型
1,range分區
按照RANGE分區的表是通過如下一種方式進行分區的,每個分區包含那些分區表達式的值位於一個給定的連續區間內的行。
2,list分區
LIST分區中每個分區的定義和選擇是基於某列的值從屬於一個值列表集中的一個值,而RANGE分 區是從屬於一個連續區間值的集合。
3,hash分區
HASH分區主要用來確保數據在預先確定數目的分區中平均分布,你所要做的只是基於將要被哈希的列值指定一個列值或表達式,以 及指定被分區的表將要被分割成的分區數量。
4,key分區
按照KEY進行分區類似於按照HASH分區,除了HASH分區使用的用 戶定義的表達式,而KEY分區的 哈希函式是由MySQL 伺服器提供。
5,子分區
子分區是分區表中每個分區的再次分割,子分區既可以使用HASH希分區,也可以使用KEY分區。這 也被稱為複合分區(composite partitioning)。