Mysql 分区介绍(二) —— RANGE分区
通过范围的方式进行分区, 为每个分区给出一定的范围, 范围必须是连续的并且不能重复, 使用VALUES LESS THAN操作符<br />
让我们先来创建一个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的会放入第二个分区。<br>
如果我的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关键字。<br />
分区键类型为时间转时间戳
<br />
可以使用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外,其他涉及到时间戳的表达式都是不被允许的
基于时间数字的分区
<br />
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
);
欢迎关注我的博客
转载于:https://blog.51cto.com/a3147972/2087161
Mysql 分区介绍(二) —— RANGE分区相关推荐
- MySql采用range分区可提升查询效率
简介: RANGE分区基于一个给定的连续区间范围,早期版本RANGE主要是基于整数的分区.在5.7版本中DATE.DATETIME列也可以使用RANGE分区,同时在5.5以上的版本提供了基于非整形的R ...
- mysql range代表什么意思_MySQL数据表range分区例子
某些行业数据量的增长速度极快,随着数据库中数据量的急速膨胀,数据库的插入和查询效率越来越低.此时,除了程序代码和查询语句外,还得在数据库的结构上做点更改:在一个主读辅写的数据库中,当数据表数据超过10 ...
- mysql 社区版 innodb_MySQL 表分区详解MyiSam引擎和InnoDb 区别(实测)
MySQL 表分区详解MyiSam引擎和InnoDb 区别(实测) / -------------------- 写在最前面 ------------------ ...
- MySQL表的四种分区类型
一.什么是表分区 通俗地讲表分区是将一大表,根据条件分割成若干个小表.mysql5.1开始支持数据表分区了. 如:某用户表的记录超过了600万条,那么就可以根据入库日期将表分区,也可以根据所在地将表分 ...
- mysql partition 语法_MySQL partition分区小结
MySQL partition分区 分区概念 分区针对不同的数据库,具有不同的特性.在这里专门针对MySQL数据库而言.在MySQL数据库里,分区这个概念是从mysql 5.1才开始提供的.不过目前只 ...
- Oracle 分区表——Range分区
本博文少许理论资料来至DBA技术大牛http://blog.csdn.net/tianlesoftware/article/details/4717318,本着实践式学习,书写以下博文: 一.什么是分 ...
- MySQL 5.7 表分区技术(二):RANGE分区
文章目录 一.说明 二.RANGE分区定义 三.示例 3.1 根据dept_id列进行分区 3.2 通过MAXVALUE关键字"catch all"所有大于某个值的数据 3.3 根 ...
- MySQL RANGE分区
2016-07-12 10:18 by pursuer.chen, 5060 阅读, 0 评论, 收藏, 编辑 介绍 RANGE分区基于一个给定的连续区间范围,早期版本RANGE主要是基于整数的分区. ...
- MySQL的分表和分区介绍
在日常开发或维护中经常会遇到大表的情况,所谓的大表是指存储了百万级乃至千万级条记录的表.这样的表过于庞大,导致数据库在查询和插入的时候耗时太长,性能低下,如果涉及联合查询的情况,性能会更加糟糕.分表和 ...
最新文章
- 僵尸网络中区块链的利用方法分析
- js时间搓化为今天明天_打乒乓球的搓球技巧!你掌握了吗?
- 无处不在:iOS平台WebView终于支持WebRTC
- ActiveX、OLE和COM介绍
- mysql table keys_MySQL Explain详解
- HTML5 Canvas中创建图像数据
- 17-Elasticsearch与关系数据库的对比(索引 Indices的理解,主要概念的理解)
- 大学生们颤抖吧,中学生已经开始学Python了!
- 【干货】2021顾客体验十二大趋势:从“千人一面”到“千人千面”.pdf(附下载链接)...
- 自己搭建了一个简单实用的Web版记事本
- MATLAB机械动力分析,基于MATLAB的柔性机械臂动力学分析.pdf
- GPU机器无法使用GPU
- ECharts实现数据可视化入门教程(超详细)
- python背离点的判断
- 计算机科技英语论文,计算机科技英语论文大纲模板 计算机科技英语论文提纲怎么写...
- signature=c31ee9b23a444aeb59534b250024e5ac,Assembling unit for tube components
- 雅虎微软交易局中局:巴茨开始绝望主妇式攻击
- 拯救行动 OpenJ_Bailian - 4116
- Linux命令——统计文件的字符数、字节数及行数
- 计算机网络原理 笔记整理
热门文章
- 白话阿里巴巴Java开发手册(编程规约)
- Java程序员从笨鸟到菜鸟之(三十)javascript弹出框、事件、对象化编程
- 我的2013-从GIS学生到GIS职业人的飞跃
- 用 LaTeX 写漂亮学位论文
- LSTM神经网络Demystifying LSTM neural networks
- 模式识别Pattern Recognition和机器学习Machine Learning资源
- IIS7 授权配置错误
- awk应用小结(所有命令行均经调试)
- 数据库------求职必看
- [Google Guava] 1.5-Throwables:简化异常和错误的传播与检查