MySQL表分区(2)列表分区-list
2016-08-05 15:05
197 查看
list列表分区和range分区应该说都是一样的,不同的是range分区在分区时的依据是一段连续的区间,而list分区时依据是一组分布的散列值。
“expr” 是某列值或一个基于某个列值、并返回一个整数值的表达式,然后通过“values in (value_list)”的方式来定义每个分区,其中“value_list”是一个通过逗号分隔的整数列表。注释:在MySQL 5.1中,当使用LIST分区时,有可能只能匹配整数列表。
【注意】:如果试图插入列值(或分区表达式的返回值)不在分区值列表中的一行时。即这是11个学生已经分好组了,要再来一个学生那可不行了,就这么多。“INSERT”将失败并报错。例如,假定LIST分区的采用上面的方案,下面的查询将失败:
这是因为“studentno”列值12不能在用于定义分区p1, p2, p3l的列表中找到。所以插入12列时不知道要放到那个分区。要重点注意的是,LIST分区没有类似如“VALUES LESS THAN MAXVALUE”这样的包含其他值在内的定义。将要匹配的任何值都必须在值列表中找到。LIST分区除了能和RANGE分区结合起来生成一个复合的子分区,与HASH和KEY分区结合起来生成复合的子分区也是可以的。
创建表分区
partition by list(expr)“expr” 是某列值或一个基于某个列值、并返回一个整数值的表达式,然后通过“values in (value_list)”的方式来定义每个分区,其中“value_list”是一个通过逗号分隔的整数列表。注释:在MySQL 5.1中,当使用LIST分区时,有可能只能匹配整数列表。
<span style="font-family:FangSong_GB2312;">create table student (id varchar(20) not null , studentno int(20) not null, name varchar(20), age varchar(20) ) partition by list(studentno) ( partition p1 values in (1,2,3,4), partition p2 values in (5,6,7,8), partition p3 values in (9,10,11) ); </span>如上创建表student,可以理解为将学号1-11的学生分为三个组,分别为p1、p2、p3三个分区。需要注意的是一般情况下,针对表的分区字段为int等数值类型。
优点
这使得在表中增加或删除指定组的学生记录变得容易起来。例如,假定要删除p1组的所有学员。查询“ALTER TABLE student(表名) DROP PARTITION p1(分区名);”来进行删除,这种操作方式比同样作用的删除作用的“delete from student where studentno IN (1,2,3,4)要有效果的多,我看到可怕的“in”。【注意】:如果试图插入列值(或分区表达式的返回值)不在分区值列表中的一行时。即这是11个学生已经分好组了,要再来一个学生那可不行了,就这么多。“INSERT”将失败并报错。例如,假定LIST分区的采用上面的方案,下面的查询将失败:
这是因为“studentno”列值12不能在用于定义分区p1, p2, p3l的列表中找到。所以插入12列时不知道要放到那个分区。要重点注意的是,LIST分区没有类似如“VALUES LESS THAN MAXVALUE”这样的包含其他值在内的定义。将要匹配的任何值都必须在值列表中找到。LIST分区除了能和RANGE分区结合起来生成一个复合的子分区,与HASH和KEY分区结合起来生成复合的子分区也是可以的。
相关文章推荐
- 创建list(列表)分区!
- 创建range-list(范围-列表)组合分区!
- 关于Ubuntu源列表的更改 - source list
- HTML学习09-_LIST标签 列表标签
- python函数中把列表(list)当参数时的"入坑"与"出坑"
- Excel - 使用跨sheet定义Drop_List 下拉列表
- nullnullPython 在列表list中查找相应的值
- Ionic基础——列表ion-list
- 4、python数据类型之列表(list)
- Python3基础 list 乘法运算 成倍扩充列表
- 获取本机已安装的软件列表C#/VB.NET(Get the list of installed software in local pc)
- python 字符串转列表 list 出现\ufeff的解决方法
- 解决ssh不能添加已访问的主机到信任列表的问题(Failed to add the host to the list of known hosts) .
- Spring 给bean配置list<bean>列表参数
- Python 列表(List)
- VS2010/MFC编程初识一【ListControl列表视图控件和SliderControl滑块控件的 基本用法】
- 编辑 Outlook “自动完成列表(Auto Complete List)”
- Redis学习-3.3:List列表详解
- SectionList 嵌套FlatList实现Grid和Flat列表
- Redis数据类型之列表(list)