今天看了一下 MySQL 的 RANGE 分区,感觉限制太大了,不知道在实际应用是否有价值?

例如,在 RANGE 分区中,要么分区表上没有主键/唯一键,要么分区表的主键/唯一键都必须包含分区键。

-- 表包含一个主键和一个唯一键

CREATE TABLE emp(

id INT NOT NULL,

store_id INT NOT NULL,

PRIMARY KEY(id),

UNIQUE KEY key_store_id(store_id)

)

-- 在主键上分区

PARTITION BY RANGE(id)(

PARTITION p0 VALUES LESS THAN (10),

PARTITION p1 VALUES LESS THAN (20),

PARTITION p2 VALUES LESS THAN (30)

);

抛出错误:A UNIQUE INDEX must include all columns in the table's partitioning function

-- 表包含一个主键和一个唯一键

CREATE TABLE emp(

id INT NOT NULL,

store_id INT NOT NULL,

PRIMARY KEY(id),

UNIQUE KEY key_store_id(store_id)

)

-- 在唯一键上分区

PARTITION BY RANGE(store_id)(

PARTITION p0 VALUES LESS THAN (10),

PARTITION p1 VALUES LESS THAN (20),

PARTITION p2 VALUES LESS THAN (30)

);

抛出错误:A PRIMARY KEY must include all columns in the table's partitioning function

在设计表的时候,主键肯定是不能缺少的,也就是说我们在实际的分区操作时只能按照主键来分区,同时该表还必须保证没有任意一列是包含唯一键的。

面对这么多的限制,RANGE 分区真的有价值吗?

mysql in range_mysql 的 RANGE 分区有价值吗?相关推荐

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

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

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

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

  3. MySQL RANGE分区

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

  4. Mysql分区 - Range分区

    1.Range(范围) – 这种模式允许DBA将数据划分不同范围.例如DBA可以将一个表通过年份划分成三个分区,80年代(1980's)的数据,90年代(1990's)的数据以及任何在2000年(包括 ...

  5. mysql横向分区_MySQL 横向表分区之RANGE分区小结

    MySQL 横向表分区之RANGE分区小结 by:授客 QQ:1033553122 目录 简介 mysql表分区--RANGE分区,属于横向分区.举例说,假如有100条数据,分成十份,前10条数据放到 ...

  6. Mysql 分区介绍(二) —— RANGE分区

    通过范围的方式进行分区, 为每个分区给出一定的范围, 范围必须是连续的并且不能重复, 使用VALUES LESS THAN操作符<br /> 让我们先来创建一个range分区的表 CREA ...

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

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

  8. MySQL的分表和分区介绍

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

  9. MySQL基于时间字段进行分区的方案总结

    MySQL支持的分区类型一共有四种:RANGE,LIST,HASH,KEY.其中,RANGE又可分为原生RANGE和RANGE COLUMNS,LIST分为原生LIST和LIST COLUMNS,HA ...

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

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

最新文章

  1. java 取得textfield_怎样获取java中textfield的内容
  2. word自带公式编辑_怎样在word2013中快速插入数学公式
  3. RABBITMQ 管理指南(添加虚拟HOST)
  4. 9Linux服务器编程之:mkdir()函数和rmdir()函数
  5. 让 .Net 更方便的导入导出 Excel
  6. Nagios飞信linux系统免费短信报警配置
  7. WebDriver API
  8. Trick(十四)—— 判断是否序列中所有的元素都相同
  9. DRL实战 : Dynamic Programming
  10. 好用的WPF开源UI框架项目
  11. CAD .Net 开发-快速入门
  12. 代理模式和装饰者模式区别
  13. Cobalt Strike(cs) 联动 msf
  14. 路由器WIFI密码忘记了怎么办
  15. dxo photolab mac 破解版永久激活方法
  16. Proteus与Keil联调 ARM STM32流水灯
  17. 2021年安全生产模拟考试(建筑安全员B证-项目负责人模拟考试题库)安考星
  18. Nexus 05 第二种方式 使用Jenkins Nexus插件上传制品
  19. 平克四部曲之《白板》
  20. 机器人genghis_家用机器人的未来

热门文章

  1. jQuery中的100个技巧
  2. struts2拦截器interceptor的三种配置方法
  3. 成为Oracle 10g DBA之路
  4. js 验证文本框为数字的正则表达式
  5. 无法解析的外部符号 __imp_RegCloseKey
  6. el-tooltip位置不灵活_小厨房里的收纳,贵在灵活
  7. cosmic中文翻译_cosmic是什么意思,cosmic翻译成中文,英译中-xyz翻译网
  8. 计算机WORD列宽行高怎么设置,高会《职称计算机》Word 2007:设置行高和列宽
  9. 微信浪漫告白小程序java_厉害了,微信小程序可以这样表白,还怕他(她)拒绝你?...
  10. js定位div坐标存入mysql_用JS将页面定位到某个位置(DIV)