一 简介:今天来聊聊分区表的概念和维护

二分区的优点:

1.提高查询性能:只需要搜索特定分区,而非整张表,提高了查询速度。

2.节约维护时间:单个分区的数据装载,索引重建,备份,维护远远小于整张表的维护时间

三 分区类型

1 RANGE分区:基于属于一个给定连续区间的列值,把多行分配给分区。存在maxvalue限制

2 LIST分区:类似于按RANGE分区,区别在于LIST分区是基于列值匹配一个离散值集合中的某个值来进行选择。

3 HASH分区:基于用户定义的表达式的返回值来进行选择的分区,该表达式使用将要插入到表中的这些行的列值进行计算。这个函数可以包含MySQL 中有效的、产生非负整数值的任何表达式。

4 KEY分区:类似于按HASH分区,区别在于KEY分区只支持计算一列或多列,且MySQL服务器提供其自身的哈希函数。必须有一列或多列包含整数值。

三 分区限制和注意事项

1.主键或者唯一索引必须包含分区字段,如primary key (id,username),这里需要注意,分区表不一定会有主键/唯一键.,但是一旦有主键或者唯一键,就必须包含分区字段

2.很多时候,使用分区就不要在使用主键了,否则可能影响性能。

3.每个表最多1024个分区,而且多分区会大量消耗内存,所以不要建立过多不用的分区

4.分区的表不支持外键,相关的逻辑约束需要使用程序来实现。

5.分区后,可能会造成索引失效,需要验证分区可行性。

6.分区表在server层被认为是一张表,所以会共享MDL锁,这点在做DDL操作时非常重要,可能导致锁等待

7.分区规则必须要提前设立好,否则修改会很麻烦

四 分区表管理操作

alter table user drop partition user_3; //删除分区

alter table user add partition partitions 8; //新增hash/key分区

alter table user add partition(partition user_3 values less than maxvalue);//新增range分区

ALTER TABLE users REORGANIZE PARTITION p0,p1 INTO (PARTITION p0 VALUES IN(0,1,4,5,8,9,12,13)); //分区合并 po可以为不存在的分区

五 普通表转化为分区表

方案1

1 建立好新的分区表

2 程序导入数据

方案 2

1 alter table table_name partition by命令重建分区表

2 关于分区表字段主键问题要特别注意,因为有的分区类型需要联合主键,所以要对原表进行改造

六 分区表与普通表互相转化

采用pt-osc执行

七 注意

1 ALTER TABLE T1 REMOVE PARTITIONING 建议用PT-OSC执行,否则会锁表

2 用remove移除分区是仅仅移除分区的定义,并不会删除数据和drop PARTITION不一样,后者会连同数据一起删除

八  分区表扩展

1 如果开始定义的时候分区过少,有可能导致程序插入数据后期报错,因为分区不够用,建议采用存储过程自动扩展,这是最好的方法、

2 对于range分区到达maxvalue的情况 可以采用重建range分区的方法进行

Alter table emp partition by range(salary)

(

partition p1 values less than (2000),

partition p2 values less than (4000)

);

九 5.7 分区新特性

mysql 5.7 分区新特性

1 MySQL 5.7支持 分区 & 物理表 直接交换 的新特性,将历史分区交换到外部物理表,再归档到历史库里

eg ALTER TABLE t1 EXCHANGE PARTITION p20160101 WITH TABLE t1_20160101;

2 mysql 5.7 分区表开始支持icp特性

3 子分区支持ANALYZE,CHECK,OPTIMIZE,REPAIR和TRUNCATE操作;

mysql 分区原理_mysql 原理~ 分区表相关推荐

  1. mysql 分区 目的_MySQL分区表最佳实践

    前言: 分区是一种表的设计模式,通俗地讲表分区是将一大表,根据条件分割成若干个小表.但是对于应用程序来讲,分区的表和没有分区的表是一样的.换句话来讲,分区对于应用是透明的,只是数据库对于数据的重新整理 ...

  2. mysql 分区合并_mysql中的合并表和分区表详解(经常使用的概念)

    分区表是mysql5.1之后的新特性,合并表已经存在很长时间了.这篇文章主要介绍这两个概念以及他们基本的操作. 一.合并表 合并表说实话是一种将要被淘汰的技术,但是掌握了合并表的概念再去看分区表就比较 ...

  3. mysql分区要求_MySQL 分区介绍总结

    介绍 分区是指根据一定的规则将一个大表分解成多个更小的部分,这里的规则一般就是利用分区规则将表进行水平切分:逻辑上没有发生变化但实际上表已经被拆分成了多个物理对象,每个分成被划分成了一个独立的对象.相 ...

  4. mysql 分区键_mysql分区

    分区 就访问数据库的应用而言,逻辑上只有一个表或一个索引,但是实际上这个表可能由数10个物理分区对象组成,每个分区都是一个独立的对象,可以独自处理,可以作为表的一部分进行处理. 分区对应用来说是完全透 ...

  5. mysql 分区索引_MySQL 分区建索引

    介绍 mysql分区后每个分区成了独立的文件,虽然从逻辑上还是一张表其实已经分成了多张独立的表,从"information_schema.INNODB_SYS_TABLES"系统表 ...

  6. mysql auto_increment 原理_mysql原理之Auto_increment

    引言 MySQL中auto_increment字段估计大家都经常用到,特别是innodb引擎.我也经常用,只知道mysql可以保证这个字段在多进程操作时的原子性,具体原理又是什么,后来查阅了MySQL ...

  7. MySQL分区总结_mysql分区表小结2

    更改分区类型 如果想更改分区类型,只需调用alter table partition by即可,比oracle要简便: --将range分区改为key分区 CREATE TABLE trb3 (id ...

  8. mysql 分区 导出_mysql普通表变成分区表导入导出

    环境:tidb.linux 1.先确认主键.创建分区表(用于代替原表) SELECT column_name FROM INFORMATION_SCHEMA.`KEY_COLUMN_USAGE` WH ...

  9. mysql mdl 锁_mysql原理 ~ 细说 MDL锁

    一 简介: MDL锁 二 分类 1 MDL读锁 MDL读锁是相互兼容的 SHARED_READ 2 MDL 写锁 MDL写锁是互斥的 EXCLUSIVE 三 针对目标 1 目标 MDL锁是针对语句级别 ...

  10. mysql分区失败_MYSQL表分区操作错误1503解决方案

    MYSQL的分区字段,必须包含在主键字段内.就是要分区的字段必须为主键索引. 如下所示,season必须为主键索引. -- list分区示例CREATE TABLE IF NOT EXISTS `pr ...

最新文章

  1. 找到字符串的最长无重复字符子串
  2. DHTML【5】--HTML
  3. python基础--面向对象之多态
  4. 前置通知(Before Advice)
  5. 应用深度学习(台大陈蕴侬李宏毅) Part1
  6. python期末考试重点_如何应付大学的python考试而不至于挂科?
  7. 【前端规划】来看看我整理的这一份专属技术知识图谱吧~
  8. UIPickerView用法(左右比例,整体大小,字体大小)
  9. Application.messagebox对话框样式
  10. GNU make manual 翻译(四十六)
  11. hownet与wordnet的区别
  12. 成功解决win10下某些文件路径不存在问题
  13. 虚拟机Ubuntu安装中文输入法
  14. win7计算机自动关机设置在哪里设置方法,win7自动关机怎么设置
  15. 云计算中心怎么选址?
  16. 重绘、重排区别及如何减少
  17. python实现地理位置类数据爬取与geohash应用初探
  18. 详解 input accept属性
  19. 520浪漫代码流星雨
  20. 遗传算法中常用的选择策略

热门文章

  1. php代码实现微信代扣,PHP是如何实现微信H5支付的?
  2. jmeter--解决登录接口只执行一次和多接口依赖的问题(使用事务控制器和循环控制器)
  3. 服务器布线属于搬迁项目吗,弱电机房服务器搬迁建设整体规划与合理布局
  4. pdf压缩器如何将文件压缩变小
  5. Django下进行urlencode编码,可以编码中文参数的代码
  6. 盛大进军语音识别领域:将开源哼唱搜索技术
  7. 网络流量分析系统的价值
  8. JAVA 经纬度转换成直角坐标系,以及直角坐标系转换成经纬度算法
  9. 第53篇-某天猫评论sign参数分析【2022-08-31】
  10. 如何在UEFI模式下安装Linux,详解 UEFI 模式下安装 Linux