千家信息网

什么是Mysql中RANGE分区

发表于:2025-11-12 作者:千家信息网编辑
千家信息网最后更新 2025年11月12日,下面讲讲关于什么是Mysql中RANGE分区,文字的奥妙在于贴近主题相关。所以,闲话就不谈了,我们直接看下文吧,相信看完什么是Mysql中RANGE分区这篇文章你一定会有所受益。通过范围的方式进行分区
千家信息网最后更新 2025年11月12日什么是Mysql中RANGE分区

下面讲讲关于什么是Mysql中RANGE分区,文字的奥妙在于贴近主题相关。所以,闲话就不谈了,我们直接看下文吧,相信看完什么是Mysql中RANGE分区这篇文章你一定会有所受益。

通过范围的方式进行分区, 为每个分区给出一定的范围, 范围必须是连续的并且不能重复, 使用VALUES LESS THAN操作符

让我们先来创建一个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 (21));

store_id 小于6的, 会被放入第一个分区, 小于11的会放入第二个分区。

如果我的store_id大于21怎么办呢?, 所以我们得修改一下这个创建分区的方式。

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 (21),    PARTITION p4 VALUES LESS THAN (MAXVALUE));

增加了一个MAXVALUE, MAXVALUE的意思是, 大于21的数据都会放入这个分区, 当然, 还有另外一种方式去避免这个问题, 就是在INSERT的时候增加IGNORE关键字。

分区键类型为时间转时间戳

可以使用UNIX-TIMESTAMP()

CREATE TABLE quarterly_report_status (    report_id INT NOT NULL,    report_status VARCHAR(20) NOT NULL,    report_updated TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP)PARTITION BY RANGE ( UNIX_TIMESTAMP(report_updated) ) (    PARTITION p0 VALUES LESS THAN ( UNIX_TIMESTAMP('2008-01-01 00:00:00') ),    PARTITION p1 VALUES LESS THAN ( UNIX_TIMESTAMP('2008-04-01 00:00:00') ),    PARTITION p2 VALUES LESS THAN ( UNIX_TIMESTAMP('2008-07-01 00:00:00') ),    PARTITION p3 VALUES LESS THAN ( UNIX_TIMESTAMP('2008-10-01 00:00:00') ),    PARTITION p4 VALUES LESS THAN ( UNIX_TIMESTAMP('2009-01-01 00:00:00') ),    PARTITION p5 VALUES LESS THAN ( UNIX_TIMESTAMP('2009-04-01 00:00:00') ),    PARTITION p6 VALUES LESS THAN ( UNIX_TIMESTAMP('2009-07-01 00:00:00') ),    PARTITION p7 VALUES LESS THAN ( UNIX_TIMESTAMP('2009-10-01 00:00:00') ),    PARTITION p8 VALUES LESS THAN ( UNIX_TIMESTAMP('2010-01-01 00:00:00') ),    PARTITION p9 VALUES LESS THAN (MAXVALUE));

除了UNIX_TIMESTAMP外,其他涉及到时间戳的表达式都是不被允许的

基于时间数字的分区

CREATE TABLE members (    firstname VARCHAR(25) NOT NULL,    lastname VARCHAR(25) NOT NULL,    username VARCHAR(16) NOT NULL,    email VARCHAR(35),    joined DATE NOT NULL)PARTITION BY RANGE(YEAR(joined) ) (    PARTITION p0 VALUES LESS THAN (1960),    PARTITION p1 VALUES LESS THAN (1970),    PARTITION p2 VALUES LESS THAN (1980),    PARTITION p3 VALUES LESS THAN (1990),    PARTITION p4 VALUES LESS THAN MAXVALUE);

对于以上什么是Mysql中RANGE分区相关内容,大家还有什么不明白的地方吗?或者想要了解更多相关,可以继续关注我们的行业资讯板块。

方式 范围 时间 下文 主题 关键 关键字 内容 到时 地方 奥妙 就是 怎么办 意思 操作符 数字 数据 文字 时候 更多 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 郴州软件开发培训多少钱 网络安全作文好处600字 重庆服务器虚拟化部署云主机 中国梦进入数据库的人能挣钱吗 中国网络安全形式 市南区软件开发推荐 放心激光视觉打标软件开发 米尺网络技术大全 网络安全考研推荐院校分数线 服务器间为啥没跨域问题 福建超算套料软件开发商 北京一站式网络技术咨询技术指导 注入 数据库判断 远程连接服务器安全策略 江苏省网络安全宣传周是 电力行业网络安全案例价格 为啥没人学网络安全 瀑布式软件开发有哪几阶段 在线社工库数据库 湖南网络技术学院招生 数据库中的视图如何修改数据 两个系统 交换数据库 甜糖服务器安装教程 中国服务器远程管理平台 海南海事局网络安全等级保护 软件开发师用英语怎么说 每日网络技术工资 网络安全技术瓶颈 吉林布谷网络技术 哪个数据库可以查港股财务比率
0