更改分区类型

如果想更改分区类型,只需调用alter table partition by即可,比oracle要简便;

--将range分区改为key分区

CREATE TABLE trb3 (id INT, name VARCHAR(50), purchased DATE)

PARTITION BY RANGE( YEAR(purchased) ) (

PARTITION p0 VALUES LESS THAN (1990),

PARTITION p1 VALUES LESS THAN (1995),

PARTITION p2 VALUES LESS THAN (2000),

PARTITION p3 VALUES LESS THAN (2005)

);

ALTER TABLE trb3 PARTITION BY KEY(id) PARTITIONS

Reorganize partition

对于range/list分区表,如想分割/合并相邻分区,除了split/coalesce命令外,还可以使用reorganize partition

Create Table: CREATE TABLE `members` (

`id` int(11) default NULL,

`fname` varchar(25) default NULL,

`lname` varchar(25) default NULL,

`dob` date default NULL

) ENGINE=MyISAM DEFAULT CHARSET=latin1

PARTITION BY RANGE ( YEAR(dob) ) (

PARTITION p0 VALUES LESS THAN (1970) ENGINE = MyISAM,

PARTITION p1 VALUES LESS THAN (1980) ENGINE = MyISAM,

PARTITION p2 VALUES LESS THAN (1990) ENGINE = MyISAM.

PARTITION p3 VALUES LESS THAN (2000) ENGINE = MyISAM

)

--分割第一个分区

ALTER TABLE members REORGANIZE PARTITION p0 INTO (

PARTITION s0 VALUES LESS THAN (1960),

PARTITION s1 VALUES LESS THAN (1970)

);

--合并前两个分区

ALTER TABLE members REORGANIZE PARTITION s0,s1 INTO (

PARTITION p0 VALUES LESS THAN (1970)

);

分区修剪

对于key/hash分区,分区修剪只使用于整数列;

range/list分区限制没有那么多,5.5开始to_days()/to_seconds()/year()也支持分区修剪

CREATE TABLE t2 (

fname VARCHAR(50) NOT NULL,

lname VARCHAR(50) NOT NULL,

region_code TINYINT UNSIGNED NOT NULL,

dob DATE NOT NULL

)

PARTITION BY RANGE( YEAR(dob) ) (

PARTITION d0 VALUES LESS THAN (1970),

PARTITION d1 VALUES LESS THAN (1975),

PARTITION d2 VALUES LESS THAN (1980),

PARTITION d3 VALUES LESS THAN (1985),

PARTITION d4 VALUES LESS THAN (1990),

PARTITION d5 VALUES LESS THAN (2000),

PARTITION d6 VALUES LESS THAN (2005),

PARTITION d7 VALUES LESS THAN MAXVALUE

);

--该sql照样能使用分区修剪

SELECT * FROM t2 WHERE dob >= '1984-06-21' AND dob <= '1999-06-21'

Tiphash/linear hash分区表,不能使用drop partition命令,可用coalesce partition替代

分区表创建后,不要修改sql_mode,否则有可能导致数据损坏,且必须保持master/slave使用同一种sql_mode

一个表最多可包含1024个分区/子分区(NDB存储引擎除外),若表没有达到最大分区数限制却仍遭遇Got error ... from storage engine: Out of resources when opening file,,则需检查open_files_limit参数设置;

5.5新增操作命令alter table … truncate partition

分区表不支持外键

临时表和日志表都不可分区

数据库升级时,使用非NDBCLUSTER的key分区表必须重建

子分区只能使用key/hash类型

如果表指定了主键或者unique列,则必须指定这些列或其部分列做分区键

mysql>CREATE TABLE np_pk (

->id INT NOT NULL AUTO_INCREMENT,

->name VARCHAR(50),

->added DATE,

->PRIMARY KEY (id)

->);

Query OK, 0 rows affected (0.08 sec)

mysql>ALTER TABLE np_pk

->PARTITION BY HASH( TO_DAYS(added) )

->PARTITIONS 4;

ERROR 1503 (HY000): A PRIMARY KEY must include all columns in the table's partitioning function

MySQL分区总结_mysql分区表小结2相关推荐

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

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

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

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

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

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

  4. mysql 分区键_mysql分区

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

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

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

  6. mysql 表分区优缺点_Mysql分区表局限性总结

    本文测试的版本 XML/HTML代码 mysql>select version(); +------------+ | version() | +------------+ | 5.1.33-l ...

  7. mysql 交换分区吗_MySQL分区表——交换分区

    从MySQL 5.6开始,支持分区交换.就是将一个分区表中的一个分区和一个普通表中的数据互换.一.实现交换分区的基本语法:ALTER TABLEptEXCHANGE PARTITIONpWITH TA ...

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

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

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

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

最新文章

  1. Linux shell 学习笔记(15)— shell 正则表达式
  2. 想详细了解风头正劲的联邦学习吗?这篇最强综述论文满足你
  3. [javaSE] 集合框架(Map概述)
  4. CV之LabelImg:图片标注工具之LabelImg(图像标注工具)的简介、安装、使用方法详细攻略
  5. php怎么添加会员卡,怎么在微信公众号中添加一个会员卡领取功能
  6. prepare 和 row_count()一起使用的误区
  7. 字符串字符和数字分割
  8. DSPBuilder笔记
  9. native react 更新机制_React Native - 组件的生命周期详解(附:各阶段调用的方法)...
  10. UI设计实用素材|数据可视化UX套件
  11. Android学习笔记27:网格视图GridView的使用
  12. msgpack使用 php_如何使用msgpack进行读写?
  13. Typora简易教程
  14. MySQL随机排序的正确姿势
  15. NOI题库答案(1.5 编程基础之循环控制) AC
  16. 【LeetCode】求中位数(数据流、滑动窗口、两个正序数组)
  17. ios(ipad,iphone)屏幕旋转检测通用方法
  18. 嵌入式软件开发学习 工程师要掌握的基本技能
  19. linux 命令之jq
  20. 【Python爬虫】 爬取京东商品图片并下载

热门文章

  1. 精细化运营时代,金融魔镜如何助力各产品线实现业务增长
  2. mmap文件转换为mm文件
  3. 计算机图形学研究软件
  4. python读取大智慧数据_大智慧365权息数据格式及读取过程步骤记录
  5. 产品群面:在无领导小组讨论中脱颖而出!
  6. 一文搞懂Glide,不懂来打我
  7. linux红帽子怎么设置防火墙,RedHat Linux如何设置防火墙
  8. Python 头像上右下角添加小红旗
  9. EBS中AP发票分配行的解释
  10. idea Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Progra