通过范围的方式进行分区, 为每个分区给出一定的范围, 范围必须是连续的并且不能重复, 使用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分区相关推荐

  1. MySql采用range分区可提升查询效率

    简介: RANGE分区基于一个给定的连续区间范围,早期版本RANGE主要是基于整数的分区.在5.7版本中DATE.DATETIME列也可以使用RANGE分区,同时在5.5以上的版本提供了基于非整形的R ...

  2. mysql range代表什么意思_MySQL数据表range分区例子

    某些行业数据量的增长速度极快,随着数据库中数据量的急速膨胀,数据库的插入和查询效率越来越低.此时,除了程序代码和查询语句外,还得在数据库的结构上做点更改:在一个主读辅写的数据库中,当数据表数据超过10 ...

  3. mysql 社区版 innodb_MySQL 表分区详解MyiSam引擎和InnoDb 区别(实测)

    MySQL 表分区详解MyiSam引擎和InnoDb 区别(实测) / --------------------         写在最前面            ------------------ ...

  4. MySQL表的四种分区类型

    一.什么是表分区 通俗地讲表分区是将一大表,根据条件分割成若干个小表.mysql5.1开始支持数据表分区了. 如:某用户表的记录超过了600万条,那么就可以根据入库日期将表分区,也可以根据所在地将表分 ...

  5. mysql partition 语法_MySQL partition分区小结

    MySQL partition分区 分区概念 分区针对不同的数据库,具有不同的特性.在这里专门针对MySQL数据库而言.在MySQL数据库里,分区这个概念是从mysql 5.1才开始提供的.不过目前只 ...

  6. Oracle 分区表——Range分区

    本博文少许理论资料来至DBA技术大牛http://blog.csdn.net/tianlesoftware/article/details/4717318,本着实践式学习,书写以下博文: 一.什么是分 ...

  7. MySQL 5.7 表分区技术(二):RANGE分区

    文章目录 一.说明 二.RANGE分区定义 三.示例 3.1 根据dept_id列进行分区 3.2 通过MAXVALUE关键字"catch all"所有大于某个值的数据 3.3 根 ...

  8. MySQL RANGE分区

    2016-07-12 10:18 by pursuer.chen, 5060 阅读, 0 评论, 收藏, 编辑 介绍 RANGE分区基于一个给定的连续区间范围,早期版本RANGE主要是基于整数的分区. ...

  9. MySQL的分表和分区介绍

    在日常开发或维护中经常会遇到大表的情况,所谓的大表是指存储了百万级乃至千万级条记录的表.这样的表过于庞大,导致数据库在查询和插入的时候耗时太长,性能低下,如果涉及联合查询的情况,性能会更加糟糕.分表和 ...

最新文章

  1. 僵尸网络中区块链的利用方法分析
  2. js时间搓化为今天明天_打乒乓球的搓球技巧!你掌握了吗?
  3. 无处不在:iOS平台WebView终于支持WebRTC
  4. ActiveX、OLE和COM介绍
  5. mysql table keys_MySQL Explain详解
  6. HTML5 Canvas中创建图像数据
  7. 17-Elasticsearch与关系数据库的对比(索引 Indices的理解,主要概念的理解)
  8. 大学生们颤抖吧,中学生已经开始学Python了!
  9. 【干货】2021顾客体验十二大趋势:从“千人一面”到“千人千面”.pdf(附下载链接)...
  10. 自己搭建了一个简单实用的Web版记事本
  11. MATLAB机械动力分析,基于MATLAB的柔性机械臂动力学分析.pdf
  12. GPU机器无法使用GPU
  13. ECharts实现数据可视化入门教程(超详细)
  14. python背离点的判断
  15. 计算机科技英语论文,计算机科技英语论文大纲模板 计算机科技英语论文提纲怎么写...
  16. signature=c31ee9b23a444aeb59534b250024e5ac,Assembling unit for tube components
  17. 雅虎微软交易局中局:巴茨开始绝望主妇式攻击
  18. 拯救行动 OpenJ_Bailian - 4116
  19. Linux命令——统计文件的字符数、字节数及行数
  20. 计算机网络原理 笔记整理

热门文章

  1. 白话阿里巴巴Java开发手册(编程规约)
  2. Java程序员从笨鸟到菜鸟之(三十)javascript弹出框、事件、对象化编程
  3. 我的2013-从GIS学生到GIS职业人的飞跃
  4. 用 LaTeX 写漂亮学位论文
  5. LSTM神经网络Demystifying LSTM neural networks
  6. 模式识别Pattern Recognition和机器学习Machine Learning资源
  7. IIS7 授权配置错误
  8. awk应用小结(所有命令行均经调试)
  9. 数据库------求职必看
  10. [Google Guava] 1.5-Throwables:简化异常和错误的传播与检查