1.RANGE 分區 創建實例: CREATE TABLE EMP ( id int not null primary key auto_increment, name char(25) not null default '' ) PARTITION BY RANGE (id) ( 將字段id定義為分區的字段 PARTITION P0 VALUES LESS THAN (100), 99以下的id都歸到p0分區 PARTITION P1 VALUES LESS THAN (200), 100-199 PARTITION P2 VALUES LESS THAN (300) 200-299 ); PS::因為默認會將0也算進去,所以P0實際可以存儲0-99或-數 PS::要麼不包含主鍵,如果要包含主鍵,那麼分區字段也必須是主鍵 PS::mysql5.5以上支持日期進行分區,有什麼作用,^_^,你可以想到的 2.List分區 創建實例: CREATE TABLE LIST_EMP ( tid int not null PRIMARY key auto_increment, tname char(20) ) PARTITION BY LIST (tid) ( PARTITION P0 VALUES IN (1,3,5,7,9), PARTITION P1 VALUES IN (2,4,6,8,10) ); PS::通過上面的2種分區不難看出,RANGE分區是指定一個范圍,而List分區是指定一個列表,在list中,只有指定的值才能存進去! PS::個人覺得List分區更多可以用在分類上面 測試: insert into list_emp values (null,'Php'); insert into list_emp values (null,'Php'); insert into list_emp values (null,'Php'); insert into list_emp values (null,'Php'); insert into list_emp values (null,'Php'); insert into list_emp values (null,'Php'); insert into list_emp values (null,'Php'); insert into list_emp values (null,'Php'); insert into list_emp values (null,'Php'); insert into list_emp values (null,'Php'); insert into list_emp values (null,'Php');ERROR 1526 (HY000): Table has no partition for value 11 PS::第11條數據的時候報錯,因為沒有任何分區表包含了它