一、如何管理RANGE和LIST分区

以该分区表为例

CREATE TABLEmembers (

idINT,

fnameVARCHAR(25),

lnameVARCHAR(25),

dob DATE

)

PARTITIONBY RANGE( YEAR(dob) ) (

PARTITION p0VALUES LESS THAN (1970),

PARTITION p1VALUES LESS THAN (1980),

PARTITION p2VALUES LESS THAN (1990)

);

1. 删除分区

ALTER TABLE members DROP PARTITION p1;

注意:如果删掉了某分区,则该分区内的数据将全部丢失,不仅如此,在用show create table members\G;命令查看该表的创建语句时将无法看到被删除分区的任何信息。

对于RANGE分区来说,如果删除了p1分区,在插入数据时,如果日期在1970到1980区间之内,则该数据将会被分配到下一个分区,即p2,。

对于LIST分区,如果删除了某一分区,在插入数据时,如果数据属于这一分区,则插入会报错。

如果只是删除数据而不删除该分区的信息,可使用truncate命令

ALTER TABLE members TRUNCATE PARTITION p1;

2. 添加分区

ALTER TABLE members ADD PARTITION (PARTITION p3 VALUES LESS THAN (2000));

注意:使用ADD命令来添加分区,只能在分区列表的末尾添加,具体到本例中,只能添加到1990年以后。

当然,在实际生产环境中,这样的局限性太大,譬如我想将p0分区之前添加一个分区,区间为1960,或者将p1之间再添加一个1975的分区,这时候,用ADD将无法满足此类需求,可使用ALTER TABLE ... REORGANIZE PARTITION命令。

譬如:

ALTER TABLE members REORGANIZE PARTITION p0 INTO(

PARTITION s0VALUES LESS THAN (1960),

PARTITION s1VALUES LESS THAN (1970)

);

REORGANIZE命令其实是相当灵活的,不仅能拆分分区,还可以用来合并分区,譬如:

ALTER TABLE members REORGANIZE PARTITION p0,p1,p2,p3 INTO(

PARTITION m0VALUES LESS THAN (1980),

PARTITION m1VALUES LESS THAN (2000)

);

注意:

1> 不能使用REORGANIZE PARTITION命令修改表的分区类型,只能通过ALTER TABLE ... PARTITION BY ....语句,譬如:

ALTER TABLEmembers

PARTITIONBY HASH( YEAR(dob) )

PARTITIONS8;

2> REORGANIZE PARTITION语法如下:

ALTER TABLEtbl_name

REORGANIZE PARTITION partition_listINTO (partition_definitions);

partition_definitions中分区的范围必须要涵盖partition_list中的分区范围。

二、如何管理HASH和KEY分区

以该分区表为例

CREATE TABLEclients (

idINT,

fnameVARCHAR(30),

lnameVARCHAR(30),

signed DATE

)

PARTITIONBY HASH( MONTH(signed) )

PARTITIONS12;

对于HASH分区和KEY分区,并不支持上述RANGE和LIST分区的语法,譬如DROP,TRUNCATE,REORGANIZE分区。

事实上,它只支持一种类型的“分区调整”。

ALTER TABLE clients COALESCE PARTITION 4;

该命令的作用在于将clients表的分区剪裁4个,从12个剪裁到8个。

ALTER TABLE clients ADD PARTITION PARTITIONS 6;

同样,该命令为clients表增加了6个分区,从12个到18个。

mysql truncate分区表_MySQL分区表的管理~1相关推荐

  1. mysql 字符串分区_Mysql分区表的原理和优缺点

    分区表的原理 分区表是由多个相关的底层表实现,这些底层表也是由句柄对象表示,所以我们也可以直接访问各个分区,存储引擎管理分区的各个底层表和管理普通表一样(所有的底层表都必须使用相同的存储引擎),分区表 ...

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

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

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

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

  4. mysql数据库局限性_Mysql分区表局限性总结

    Mysql5.1已经发行很久了,本文根据官方文档的翻译和自己的一些测试,对Mysql分区表的局限性做了一些总结,因为个人能力以及测试环境的原因,有可能有错误的地方,还请大家看到能及时指出,当然有兴趣的 ...

  5. mysql 创建分区表_Mysql分区表及自动创建分区Partition

    Range分区表建表语句如下,其中分区键必须和id构成主键和唯一键 CREATE TABLE `test1` ( `id` char(32) COLLATE utf8mb4_unicode_ci NO ...

  6. 如何创建mysql分区表_mysql分区表创建思路

    mysql分区表有range,list,hash,key,其中每个分区又有特殊的类型.对于RANGE分区,有RANGE COLUMNS分区.对于LIST分区,有LIST COLUMNS分区.对于HAS ...

  7. mysql普通标转分区表_MySQL分区表到普通表互转

    由于最近总有人抱怨,数据迁移后执行SQL变慢,经过查看原来是分区导致的问题.原分区根据按月设置RANGE分区, 看到这图的时候也许有人就会发现问题....... 业务查询SQL: 从SQL上看 执行计 ...

  8. mysql8分区表_MySQL 分区表

    MySQL分区就是将一个表分解为多个更小的表.从逻辑上讲,只有一个表或一个索引,但在物理上这个表或者索引可能由多个物理分区组成.每个分区在物理上都是独立的.MySQL数据库分区类型:Range分区:行 ...

  9. mysql5.7 分区表_mysql分区表学习

    一:怎样对已有数据的表进行表分区 可以直接alter table进行修改. 如: USE dba; ALTER TABLE t3 PARTITION BY RANGE(id) ( PARTITION ...

  10. mysql pma用户_MYSQL用户权限管理学习笔记

    MYSQL用户管理 1.权限表 MYSQL是一个多用户的数据库,MYSQL的用户可以分为两大类: (1)       超级管理员用户(root),拥有全部权限 (2)       普通用户,由root ...

最新文章

  1. JAVA高级特性--自动拆箱-装箱,枚举类型
  2. 三维感知,这些干货足够了!(自动驾驶/三维重建/SLAM/点云/标定/深度估计/3D检测)...
  3. 【Android 界面效果22】Android的Tab与TabHost
  4. java反射克隆对象_Java反射 - 2(对象复制,父类域,内省)
  5. iOS开发常用的资源和资料
  6. openshift使用_OpenShift DIY:使用Gradle构建Spring Boot / Undertow应用程序
  7. windows环境下memcache服务器使用经验
  8. 接收请求参数及数据回显 2021-04-26
  9. java 序列化快捷键_IntelliJ IDEA生成 Serializable序列化UID的快捷键
  10. 【转】 Apache分析脚本
  11. Oracle数据库REDO损坏ora-00333修复手札
  12. Atitit.故障排除系列-----apache 不能启动的排除
  13. hudson--插件管理
  14. VSCode 花式玩法(摸鱼)收藏一下 !
  15. java jshell_java9系列(一)安装及jshell使用
  16. android中jni的调用过程,Android 调用jni的过程简述
  17. 修改Google浏览器默认打开是金山毒霸网址
  18. 出彩的PPT封面如何设置?这些例子建议收藏
  19. 【学习笔记】多线程进阶JUC
  20. EZ-USB FX2 LP CY7C68013A 开发指南(1)--基本概念

热门文章

  1. GAMMA初学笔记二
  2. PHP僵尸网络,byob--建立自己的僵尸网络
  3. 关于清理系统lj.bat的问题
  4. 儿童吹泡泡水简单配方_儿童吹泡泡水简单配方,最简单做泡泡水的办法
  5. windows+7+32位java_深度技术windows7 32位专业版下载
  6. 数据结构与算法教程目录
  7. Pandas知识点-绘制统计图
  8. 英语口语收集(十五)
  9. 阿里云网盘内测申请_最新阿里云网盘官方申请地址,哪里可以获得阿里网盘内测码?9月23日截至...
  10. PHP外包简易加密后门