千家信息网

RANGE COLUMNS分区讲义

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,本文主要给大家介绍RANGE COLUMNS分区讲义,希望可以给大家补充和更新些知识,如有其它问题需要了解的可以持续在行业资讯里面关注我的更新文章的。RANGE COLUMNS和RANGE分区是非常类
千家信息网最后更新 2026年11月02日RANGE COLUMNS分区讲义

本文主要给大家介绍RANGE COLUMNS分区讲义,希望可以给大家补充和更新些知识,如有其它问题需要了解的可以持续在行业资讯里面关注我的更新文章的。

RANGE COLUMNS和RANGE分区是非常类似的, 但是这两个也有很多不同的地方。

    1. RANGE COLUMNS 不可以使用表达式, 只能使用列名
    1. RANGE COLUMNS 接受一个或多个字段的列表
    1. 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安全错误 数据库的锁怎样保障安全 手磨咖啡 伟宏互联网科技 科技金融是不是互联网金融 致聘互联网科技 天津摩尔互联网科技 上游互联网科技 太原新华互联网科技学校怎么样 南平创想时代互联网科技有限公司 青岛科技大学互联网大赛研究生 互联网5g黑科技有哪些 上海钢联属于互联网科技股吗 广东工业互联网大赛深圳学泰科技 启辰互联网科技 郑州欣桑互联网科技有限公司 山东大美朱楼互联网科技有限公司 国产互联网科技公司 互联网科技手抄报图片 兰石爱特工业互联网科技分公司 互联网金融金融科技 优雇互联网科技有限公司 互联网科技园 合肥互联网科技公司 互联网科技大会 广州恒生互联网科技有限 厦门比较好的科技互联网公司 重庆互联网医院沙龙医盟信息科技 江苏互联网智能科技软件 陕西九四连强互联网科技有限公司 北京军民互联网科技公司 科技互联网专业工作会议发言稿
0