MySQL具有分區表的功能,可以將一張大表分割成若干個小表,提高查詢效率和管理方便性。下面介紹將普通表轉換為分區表的方法。
首先,創建一個普通表:
CREATE TABLE my_table ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50), create_time DATETIME );
接下來,選擇合適的分區鍵,例如按照創建時間分區:
ALTER TABLE my_table PARTITION BY RANGE (YEAR(create_time)) ( 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 MAXVALUE );
這樣就將原來的普通表轉為分區表了。注意分區表的查詢語句和普通表略有不同:
SELECT * FROM my_table PARTITION (p0,p1,p2);
可以看到,分區表的查詢語句需要指定分區,這也是分區表的優勢所在。