range分區(qū)的概念
range分區(qū)是利用取值范圍(區(qū)間)劃分分區(qū)争便,區(qū)間要連續(xù)并且不能互相重疊,使用values less than操作符進(jìn)行分區(qū)定義稽犁。
實(shí)際操作
下面我們將人的年齡劃分為70后,80后,90后,不同年齡的人被放在不同的分區(qū)里
create table range_1(
id mediumint unsigned auto_increment not null,
birthday date,
primary key (id,birthday)
)engine=MyISAM partition by range(year(birthday))(
partition 70hou values less than(1980),
partition 80hou values less than(1990),
partition 90hou values less than(2000)
);
year()是sql中自帶的函數(shù),用于提取日期中的年份
70hou 80hou 90hou這是分區(qū)的名字,less than是小于的意思
插入數(shù)據(jù)進(jìn)行測試
insert into range_1 values(null,'1972-05-20');
insert into range_1 values(null,'1983-03-20');
insert into range_1 values(null,'1984-04-20');
查看數(shù)據(jù)結(jié)構(gòu)
當(dāng)插入一個數(shù)據(jù)不在分區(qū)之內(nèi)會怎么樣?比如現(xiàn)在插入一個00后
因?yàn)闆]有符合條件的分區(qū),所以這里就會報(bào)錯.
如果id的大小可以預(yù)測:我們就可以這么指定分區(qū):
create table range_1(
id mediumint unsigned auto_increment not null,
birthday date,
primary key (id)
)engine=MyISAM partition by range(id)(
partition 70hou values less than(1000),
partition 80hou values less than(2000),
partition 90hou values less than(3000)
);
將不同的根據(jù)id的范圍放到不同的分區(qū)中.
總結(jié)
range就是范圍分區(qū),提前做好分區(qū)條件,然后插入值.這時(shí)每個值會找到適合自己的分區(qū),然后存放進(jìn)去.終于寫完了四個分區(qū),希望大家認(rèn)真的看一看,有問題就下方留言,一起討論.