文档详情

MySQL表分区(可修改).ppt

发布:2020-06-07约1.05万字共52页下载文档
文本预览下载声明
分区的类型: 1. RANGE分区 2. LIST分区 3. COLUMNS分区 4. HASH分区 5. KEY分区 ., * range 分区:基于属于一个给定连续区间的列值进行分配 create table employees ( id int not null, fname varchar(30), lname varchar(30), hired date not null default 1970-01-01, separated date not null default 9999-12-31, job_code int not null, store_id int not null ) partition by range (store_id) ( partition p0 values less than (6), partition p1 values less than (11), partition p2 values less than (16), partition p3 values less than maxvalue ); ., * list 分区:类似range分区,它们的主要区别在于,list分区中每个分区的定义和选择是基于某列的值从属于一个集合,而range分区是从属于一个连续区间值的集合 create table employees ( id int not null, fname varchar(30), lname varchar(30), hired date not null default 1970-01-01, separated date not null default 9999-12-31, job_code int, store_id int ) partition by list(store_id) partition pnorth values in (3,5,6,9,17), partition peast values in (1,2,10,11,19,20), partition pwest values in (4,12,13,14,18), partition pcentral values in (7,8,15,16) ); 如果试图插入列值(或分区表达式的返回值)不在分区值列表中的一行时,那么“insert”查询将失败并报错 ., * columns 分区: columns分区是range分区或list分区的一种变体,支持非整形字段作为分区的键,也可以用多个字段组合起来作为分区的键。 columns分区可允许使用的分区键类型有: 1. 所有的整形:tinyint, smallint, mediumint, int , bigint (和range分区和list分区相同) 不包括decimal和float这种数字类型的。 2. date 和 datetime 3. 字符型:chra, varchar, binary, varbinary 不包括text和blob型 ., * range columns分区: create table test2 ( a int, b int, c char(3), d int ) partition by range columns(a,d,c) ( partition p0 values less than (5,10,ggg), partition p1 values less than (10,20,mmm), partition p2 values less than (15,30,sss), partition p3 values less than (MAXVALUE,MAXVALUE,MAXVALUE) ); ., * list columns分区: set names utf8; create table customers ( name varchar(25), city varchar(15) ) partition by list columns(city) ( partition p0 values in(Beijing, Shanghai, Tianjin), partition p1 values in(Gua
显示全部
相似文档