>  기사  >  데이터 베이스  >  MySQL 5.1分区技术初探(三)

MySQL 5.1分区技术初探(三)

WBOY
WBOY원래의
2016-06-07 16:34:21855검색

2.3 LIST分区 LIST分区与RANGE分区有类似的地方,举个与例1类似的例子如下: 例3. 假定你创建了一个如下的一个表,该表保存有20家音像店的职员记录,这20家音像店的编号从1到20。 而这20个音像店,分布在4个有经销权的地区,如下表所示: 地区 商店ID 号 北

2.3 LIST分区
LIST分区与RANGE分区有类似的地方,举个与例1类似的例子如下:
例3. 假定你创建了一个如下的一个表,该表保存有20家音像店的职员记录,这20家音像店的编号从1到20。 而这20个音像店,分布在4个有经销权的地区,如下表所示:
地区 商店ID 号
北区 3, 5, 6, 9, 17
东区 1, 2, 10, 11, 19, 20
西区 4, 12, 13, 14, 18
中心区 7, 8, 15, 16
那么你可以采用如下的LIST分区语句创建数据表:

同样,它在物理文件上也会标识不同的分区:

2.4 HASH分区
HASH分区主要用来确保数据在预先确定数目的分区中平均分布。它可以基于用户定义的表达式的返回值来进行选择的分区,该表达式使用将要插入到表中的这些行的列值进行计算。
例4. 假定你创建了一个如下的一个表,该表保存有20家音像店的职员记录,这20家音像店的编号从1到20。你想把不同时期加入的员工进行分别存储,那么你可以将日期字段hired(即离职时间)作为一个key,创建的SQL语句如下:

那么要插入一个‘2005-09-15’入职的员工E1,那么按照取模函数会将其放置到第2分区中:
MOD(YEAR(‘2005-09-01’), 4)= MOD(2005,4)= 1 //即第2分区

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.