一、维护分区

对于表的维护,我们一般有如下几种方式: CHECK TABLE, OPTIMIZE TABLE, ANALYZE TABLE和REPAIR TABLE。

而这几种方式,对于分区同样适用。下面,我们一一阐述各种的作用。

1. Rebuilding partitions

重建分区,它相当于先删除分区中的数据,然后重新插入。这个主要是用于分区的碎片整理。

譬如:

ALTER TABLE t1 REBUILD PARTITION p0, p1;

2. Optimizing partitions

该命令主要是用于回收空闲空间和分区的碎片整理。对分区执行该命令,相当于依次对分区执行 CHECK PARTITION, ANALYZE PARTITION,REPAIR PARTITION命令。

譬如:

ALTER TABLE t1 OPTIMIZE PARTITION p0, p1;

注意:

一些存储引擎,譬如InnoDB,并不支持基于分区的Optimizing。当你执行该命令时,会rebuild整张表,在 MySQL 5.6.9版本以上,执行该命令会导致整张表被rebuild和analyze。在这种情况下,建议直接使用 ALTER TABLE ... REBUILD PARTITION 或 ALTER TABLE ... ANALYZE PARTITION。

3. Analyzing partitions

读取和存储分区中值的分布情况

ALTER TABLE t1 ANALYZE PARTITION p3;

4.  Repairing partitions

修复被破坏的分区

ALTER TABLE t1 REPAIR PARTITION p0,p1;

5. Checking partitions

检查分区是否存在错误

ALTER TABLE trb3 CHECK PARTITION p1;

注意:

1> mysqlcheck和myisamchk并不支持分区表

2> 上述分区名也可用all替代,指的是对所有分区进行操作。

3> ANALYZE, CHECK, OPTIMIZE, REBUILD, REPAIR和TRUNCATE命令并不适用于子分区。

二、如何获取分区的相关信息

1. 通过 SHOW CREATE TABLE 语句来查看分区表的分区子句

譬如:

mysql> show create table e\G

*************************** 1. row ***************************

Table: e

Create Table: CREATE TABLE `e` (

`id` int(11) NOT NULL,

`fname` varchar(30) DEFAULT NULL,

`lname` varchar(30) DEFAULT NULL

) ENGINE=InnoDB DEFAULT CHARSET=latin1

/*!50100 PARTITION BY RANGE (id)

(PARTITION p0 VALUES LESS THAN (50) ENGINE = InnoDB,

PARTITION p1 VALUES LESS THAN (100) ENGINE = InnoDB,

PARTITION p2 VALUES LESS THAN (150) ENGINE = InnoDB,

PARTITION p3 VALUES LESS THAN MAXVALUE ENGINE = InnoDB) */

1 row in set (0.00 sec)

2. 通过 SHOW TABLE STATUS 语句来查看表是否分区

对应Create_options字段,譬如:

mysql> show table status\G

*************************** 1. row ***************************

Name: e

Engine: InnoDB

Version: 10

Row_format: Compact

Rows: 6

Avg_row_length: 10922

Data_length: 65536

Max_data_length: 0

Index_length: 0

Data_free: 0

Auto_increment: NULL

Create_time: 2015-12-07 22:26:06

Update_time: NULL

Check_time: NULL

Collation: latin1_swedish_ci

Checksum: NULL

Create_options: partitioned

Comment:

3. 查看 INFORMATION_SCHEMA.PARTITIONS表

4. 通过 EXPLAIN PARTITIONS SELECT 语句查看对于具体的SELECT语句,会访问哪个分区。

三、分区交换

分区交换的语法如下:

ALTER TABLE pt EXCHANGE PARTITION p WITH TABLE nt

其中,pt是分区表,p是pt的分区(注:也可以是子分区),nt是目标表。

其实,分区交换的限制还是蛮多的:

1> nt不能为分区表

2> nt不能为临时表

3> nt和pt的结构必须一致

4> nt不存在任何外键约束,即既不能是主键,也不能是外键。

5> nt中的数据不能位于p分区的范围之外。

具体可参考MySQL的官方文档

MYSQL二级表的管理_MySQL分区表的管理~2相关推荐

  1. MYSQL二级表的管理_MySQL库和表的管理

    MySQL数据库服务配置好后,系统会有4个默认的数据库. information_schema:虚拟对象,其对象都保存在内存中 performance_schema:服务器性能指标库 mysql:记录 ...

  2. mysql 分表和分区_Mysql分表和分区的区别

    一,什么是mysql分表,分区 什么是分表,从表面意思上看呢,就是把一张表分成N多个小表,具体请看mysql分表的3种方法 什么是分区,分区呢就是把一张表的数据分成N多个区块,这些区块可以在同一个磁盘 ...

  3. mysql用户授权root权限管理_mysql用户权限管理

    权限管理: 用户: 系统层面:用户就是一个用户名===>用户名:密码 能做什么? 1.登录系统 2.管理系统对象 MySQL: 不再是单纯的用户名和密码 用户名@'主机范围' 主机范围被称之为白 ...

  4. mysql 清空表怎么恢复_mysql怎么恢复删除的表?mysql找回误删表的数据方法

    下面小编就为大家带来一篇mysql 找回误删表的数据方法(必看).小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧. 有备份的话很简单,只需要生成一个最近备份的数据,然后用 ...

  5. mysql常用表名大全_MySQL常用命令大全

    目录 1.mysql服务的启动和停止 2.登陆mysql 3.增加新用户 4. 操作数据库 Ⅰ. 显示数据库列表. Ⅱ. 显示库中的数据表: Ⅲ. 显示数据表的结构: Ⅳ. 建库与删库: Ⅴ. 建表与 ...

  6. mysql修改表结构权限_mysql 修改表结构操作

    mysql 修改表结构操作 使用 [desc 表名]查看表结构 1.mysql > alter table passwd add id int(3) not null auto_incremen ...

  7. mysql 内存表使用教程_MySQL的内存表的基础学习教程

    内存表,就是放在内存中的表,所使用内存的大小可通过My.cnf中的max_heap_table_size指定,如max_heap_table_size=1024M,内存表与临时表并不相同,临时表也是存 ...

  8. mysql修改表结构例子_mysql修改表结构方法实例详解

    本文实例讲述了mysql修改表结构方法.分享给大家供大家参考.具体如下: mysql修改表结构使用ALTER TABLE语句,下面就为您详细介绍mysql修改表结构的语句写法,希望对您学习mysql修 ...

  9. mysql 查看表是否存在_MySQL优化篇二

    单表优化 最佳左前缀原则为,保持索引的定义和使用顺序的一致性 将含In的范围查询,放到where条件语句的最后. 索引需要逐步优化 两表优化 小表驱动大表 避免索引失效的一些原则: 复合索引,不要跨列 ...

最新文章

  1. ICCV 2021 | R-MSFM: 用于单目深度估计的循环多尺度特征调制
  2. JAVA实现查看详情功能_【JavaWeb】111:详情页面的实现
  3. Apache ZooKeeper - ZooKeeper 数据模型回顾
  4. selenium 页面经常改变元素_selenium 总结篇,常见方法和页面元素的操作
  5. SVN报错working copy is not uptodate
  6. IDC:聚焦6+6,抓住数字化转型商机
  7. Linux系统编程----7(信号集,信号屏蔽,信号捕捉)
  8. 67 cookie常用方法
  9. 项目验收文档合并技巧
  10. Xshell6突然连不上K8S所在的虚拟机
  11. 如何修改可执行文件的图标
  12. matlab 反激变压器,基于matlab的反激电路设计..doc
  13. 53. Maximum Subarray 题解
  14. 长期大量收售通信 联通 移动 电信 工程各种型号光缆
  15. ALIGN:自动化模拟布局的系统
  16. 什么是云服务举例说明_云服务器与云服务有什么区别
  17. Spark3 读写 S3 Parquet, Hive, Hudi
  18. Android中的PendingIntent 原理
  19. fpga实操训练(从模块到系统开发)
  20. MySQL-限制结果-LIMIT(limit)

热门文章

  1. 勘误表:《网络程序设计(第二版)》西安电子科技大学出版社
  2. koa中使用cookie 和session
  3. 数字图像缩放之最近邻插值与双线性插值处理效果对比
  4. ASP.NET 5系列教程 (二):Hello World
  5. 网元查看一个无厘头的core dump问题定位
  6. Exchange企业实战技巧(5)配置OWA域名简写
  7. 不再为Apache进程淤积、耗尽内存而困扰[转载]
  8. 5.1. Instructions Instead of Data
  9. PIX配置手册三(nat)
  10. Windows下程序打包发布时的小技巧