RANGE COLUMNS分区讲义
发表于:2025-11-10 作者:千家信息网编辑
千家信息网最后更新 2025年11月10日,本文主要给大家介绍RANGE COLUMNS分区讲义,希望可以给大家补充和更新些知识,如有其它问题需要了解的可以持续在行业资讯里面关注我的更新文章的。RANGE COLUMNS和RANGE分区是非常类
千家信息网最后更新 2025年11月10日RANGE COLUMNS分区讲义
本文主要给大家介绍RANGE COLUMNS分区讲义,希望可以给大家补充和更新些知识,如有其它问题需要了解的可以持续在行业资讯里面关注我的更新文章的。
RANGE COLUMNS和RANGE分区是非常类似的, 但是这两个也有很多不同的地方。
- RANGE COLUMNS 不可以使用表达式, 只能使用列名
- RANGE COLUMNS 接受一个或多个字段的列表
- RANGE COLUMNS 分区列是不限制于数字列的;字符串, DATE和DATETIME 列也可以使用在分区列
基本定义:
CREATE TABLE table_namePARTITIONED BY RANGE COLUMNS(column_list) ( PARTITION partition_name VALUES LESS THAN (value_list)[, PARTITION partition_name VALUES LESS THAN (value_list)][, ...])column_list: column_name[, column_name][, ...]value_list: value[, value][, ...]column_list是一个或多个列名, value_list是和column_list相对应的一个或多个值
mysql> CREATE TABLE rcx ( -> 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) -> );Query OK, 0 rows affected (0.15 sec)如果我们写入三条数据到这个表每个列的值是5, 三条数据都将存储在p1分区, 因为每个列的值都不小于5, 所以我们可以查询INFORMATION_SCHEMA.PARTITIONS:
mysql> INSERT INTO r1 VALUES (5,10), (5,11), (5,12);Query OK, 3 rows affected (0.00 sec)Records: 3 Duplicates: 0 Warnings: 0mysql> SELECT PARTITION_NAME,TABLE_ROWS -> FROM INFORMATION_SCHEMA.PARTITIONS -> WHERE TABLE_NAME = 'r1';+----------------+------------+| PARTITION_NAME | TABLE_ROWS |+----------------+------------+| p0 | 0 || p1 | 3 |+----------------+------------+2 rows in set (0.00 sec)同样的, RANGE COLUMNS和RANGE分区一样, 也是支持MAXVALUE的。
CREATE TABLE rc1 ( a INT, b INT)PARTITION BY RANGE COLUMNS(a, b) ( PARTITION p0 VALUES LESS THAN (5, 12), PARTITION p3 VALUES LESS THAN (MAXVALUE, MAXVALUE));但是在此时, 写入的数据分布也会发生很大变化
mysql> INSERT INTO rc1 VALUES (5,10), (5,11), (5,12);Query OK, 3 rows affected (0.00 sec)Records: 3 Duplicates: 0 Warnings: 0mysql> SELECT PARTITION_NAME,TABLE_ROWS -> FROM INFORMATION_SCHEMA.PARTITIONS -> WHERE TABLE_NAME = 'rc1';+--------------+----------------+------------+| TABLE_SCHEMA | PARTITION_NAME | TABLE_ROWS |+--------------+----------------+------------+| p | p0 | 2 || p | p1 | 1 |+--------------+----------------+------------+2 rows in set (0.00 sec)因为我们比较的是行数据而非标量值
mysql> SELECT (5,10) < (5,12), (5,11) < (5,12), (5,12) < (5,12);+-----------------+-----------------+-----------------+| (5,10) < (5,12) | (5,11) < (5,12) | (5,12) < (5,12) |+-----------------+-----------------+-----------------+| 1 | 1 | 0 |+-----------------+-----------------+-----------------+1 row in set (0.00 sec)如果是单个字段的RANGE COLUMNS分区, 那么和RANGE分区是一致的
CREATE TABLE rx ( a INT, b INT)PARTITION BY RANGE COLUMNS (a) ( PARTITION p0 VALUES LESS THAN (5), PARTITION p1 VALUES LESS THAN (MAXVALUE));如果我们新增行(5,10), (5, 11)和(5,12)到表中, 我们可以看到他们存储的位置是一样的
mysql> INSERT INTO rx VALUES (5,10), (5,11), (5,12);Query OK, 3 rows affected (0.00 sec)Records: 3 Duplicates: 0 Warnings: 0mysql> SELECT PARTITION_NAME,TABLE_ROWS -> FROM INFORMATION_SCHEMA.PARTITIONS -> WHERE TABLE_NAME = 'rx';+--------------+----------------+------------+| TABLE_SCHEMA | PARTITION_NAME | TABLE_ROWS |+--------------+----------------+------------+| p | p0 | 0 || p | p1 | 3 |+--------------+----------------+------------+2 rows in set (0.00 sec)看了以上关于RANGE COLUMNS分区讲义,希望能给大家在实际运用中带来一定的帮助。本文由于篇幅有限,难免会有不足和需要补充的地方,如有需要更加专业的解答,可在官网联系我们的24小时售前售后,随时帮您解答问题的。
数据
多个
讲义
地方
字段
问题
三条
存储
更新
解答
不同
很大
一致
专业
两个
位置
单个
可在
字符
字符串
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
软件开发资源工作表
打印机ntp服务器
公司网络安全区域
幻塔各个服务器人数
国家网络安全需要全民参与吗
衡水软件开发 公司
暖冬服务器是真的吗
常见的数据库
宁波余姚市服务器维修
数据库 加ndf文件
广西网络软件开发创新服务
数据库2014下载
软件开发怎嘛学
广日max怎样进入日立服务器
浴室管理软件开发
c 自动投票软件开发
系统解决方案软件开发
会话内容存档服务器在线考试
属于网络安全防护措施的是
互联网科技小发明小制作
动态域名需要指定具体服务器吗
web服务器访问不成功
网络安全颁奖名单
被安排去苏州汇川软件开发
网络安全法规定监管部门
dz论坛搬家数据库设置
ug服务器版出现许可证被占用
云服务器的问题
移动电信服务器代码是什么
上海方便网络技术来电咨询