MySQL 分區(qū)是一種將大型表分成多個(gè)小型表的技術(shù),每個(gè)小型表只包含一部分?jǐn)?shù)據(jù),讓查詢時(shí)只需要處理一部分?jǐn)?shù)據(jù),提高查詢效率。
MySQL 分區(qū)有兩種類型,一種是水平分區(qū),一種是垂直分區(qū)。水平分區(qū)通過將每個(gè)分區(qū)按指定的方式分配行數(shù),將表拆分成多個(gè)部分。垂直分區(qū)則是將相對獨(dú)立的列分配到不同的表中,將大型表拆分成多個(gè)小型表。
下面是一個(gè)示例代碼,展示如何在 MySQL 中創(chuàng)建分區(qū)表:
CREATE TABLE sales ( id INT NOT NULL, region VARCHAR(100), country VARCHAR(100), sale_date DATE, amount DECIMAL(10,2) ) PARTITION BY RANGE (YEAR(sale_date)) ( PARTITION p0 VALUES LESS THAN (2010), PARTITION p1 VALUES LESS THAN (2011), PARTITION p2 VALUES LESS THAN (2012), PARTITION p3 VALUES LESS THAN (2013), PARTITION p4 VALUES LESS THAN (2014), PARTITION p5 VALUES LESS THAN MAXVALUE );
上述代碼中,我們創(chuàng)建了一個(gè)名為 “sales” 的表,并按照 “sale_date” 列的年份來進(jìn)行分區(qū),將表拆分成了 6 個(gè)部分。其中最后一個(gè)分區(qū)使用了 “MAXVALUE”,表示這個(gè)分區(qū)包含了所有大于等于 2014 年的記錄。
在實(shí)際使用中,我們可以根據(jù)具體情況選擇分區(qū)類型、分區(qū)鍵、分區(qū)數(shù)量以及每個(gè)分區(qū)的范圍,來建立適合自己業(yè)務(wù)的分區(qū)表。