MySQL分区表管理命令汇总


Posted in MySQL onMarch 21, 2022

前言:

分区是一种表的设计模式,正确的分区可以极大地提升数据库的查询效率,完成更高质量的SQL编程。但是如果错误地使用分区,那么分区可能带来毁灭性的的结果。

分区功能并不是在存储引擎层完成的,因此不只有InnoDB存储引擎支持分区,常见的存储引擎MyISAM、NDB等都支持分区。但是并不是所有的存储引擎都支持,如CSV、FEDORATED、MERGE等就不支持分区。在使用此分区功能前,应该对选择的存储引擎对分区的支持有所了解。

MySQL数据库在5.1版本时添加了对分区的支持,分区的过程是将一个表或索引分解为多个更小、更可管理的部分。就访问数据库的应用而言,从逻辑上讲,只有一个表或一个索引,但是在物理上这个表或索引可能由数十个物理分区组成。每个分区都是独立的对象,可以独自处理,也可以作为一个更大对象的一部分进行处理。

MySQL数据库支持的分区类型为水平分区(指将同一个表中不同行的记录分配到不同的物理文件中),并不支持垂直分区(指将同一表中不同列的记录分配到不同的物理文件中)。此外,MySQL数据库的分区是局部分区索引,一个分区中既存放了数据又存放了索引。而全局分区是指,数据存放在各个分区中,但是所有数据的索引放在一个对象中。目前,MySQL数据库还不支持全局分区,接下来我们一起来看看分区表的管理吧!

一、ANALYZE和CHECK PARTITION 分析和检查分区

ANALYZE分析分区:

ALTER TABLE t_test_task_result ANALYZE PARTITION p20220218,p20220219;
+------------------------------------------+---------+----------+----------+
| Table | Op | Msg_type | Msg_text |
+------------------------------------------+---------+----------+----------+
| testdb.t_test_task_result | analyze | status | OK |
+------------------------------------------+---------+----------+----------+
1 row in set (0.01 sec)

CHECK 检查分区是否存在错误:

 ALTER TABLE t_test_task_result check PARTITION p20220218,p20220219;
+------------------------------------------+-------+----------+----------+
| Table | Op | Msg_type | Msg_text |
+------------------------------------------+-------+----------+----------+
| testdb.t_test_task_result | check | status | OK |
+------------------------------------------+-------+----------+----------+
1 row in set (0.03 sec)

二、REPAIR 修复分区

ALTER TABLE t_test_task_result repair PARTITION p20220218,p20220219;
+------------------------------------------+--------+----------+----------+
| Table | Op | Msg_type | Msg_text |
+------------------------------------------+--------+----------+----------+
| testdb.t_test_task_result | repair | status | OK |
+------------------------------------------+--------+----------+----------+

三、OPTIMIZE 分区

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

会锁表:

ALTER TABLE t_test_task_result OPTIMIZE PARTITION p20220218,p20220219;
+------------------------------------------+----------+----------+---------------------------------------------------------------------------------------------+
| Table | Op | Msg_type | Msg_text |
+------------------------------------------+----------+----------+---------------------------------------------------------------------------------------------+
| testdb.t_test_task_result | optimize | note | Table does not support optimize on partitions. All partitions will be rebuilt and analyzed. |
| testdb.t_test_task_result | optimize | status | OK |
+------------------------------------------+----------+----------+---------------------------------------------------------------------------------------------+
2 rows in set (1 min 35.75 sec)

四、REBUILD分区

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

ALTER TABLE t_test_task_result REBUILD PARTITION p20220218,p20220219;
Query OK, 0 rows affected (0.16 sec)
Records: 0 Duplicates: 0 Warnings: 0

ALTER TABLE t_test_task_result REBUILD PARTITION p20220225,p20220226,p20220227,p20220228;
Query OK, 0 rows affected (2 min 9.38 sec)
Records: 0 Duplicates: 0 Warnings: 0

五、新增和删除分区

添加分区测试: ADD PARTITION(新增分区)

ALTER TABLE t_test_task_result ADD PARTITION (PARTITION p20220401 VALUES LESS THAN (TO_DAYS('2022-04-01')));

ALTER TABLE t_test_task_result ADD PARTITION (PARTITION p20220401 VALUES LESS THAN (TO_DAYS('2022-04-01')));
Query OK, 0 rows affected (0.07 sec)
Records: 0 Duplicates: 0 Warnings: 0

删除分区测试:DROP PARTITION(删除分区)

ALTER TABLE t_test_task_result DROP PARTITION p20220218;
##提示删除分区是物理删除,操作非常快
 ALTER TABLE t_test_task_result DROP PARTITION p20220218;
Query OK, 0 rows affected (0.04 sec)
Records: 0 Duplicates: 0 Warnings: 0
root@testdb 15:02: [testdb]> ALTER TABLE t_test_task_result DROP PARTITION p20220219,p20220220;
Query OK, 0 rows affected (0.04 sec)
Records: 0 Duplicates: 0 Warnings: 0

到此这篇关于MySQL分区表管理命令汇总 的文章就介绍到这了,更多相关MySQL分区表管理命令内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

MySQL 相关文章推荐
mysql数据库入门第一步之创建表
May 14 MySQL
Mysql 用户权限管理实现
May 25 MySQL
mysql外连接与内连接查询的不同之处
Jun 03 MySQL
MySQL为id选择合适的数据类型
Jun 07 MySQL
MySQL 1130异常,无法远程登录解决方案详解
Aug 23 MySQL
JMeter对MySQL数据库进行压力测试的实现步骤
Jan 22 MySQL
mysql数据插入覆盖和时间戳的问题及解决
Mar 25 MySQL
深入理解mysql事务隔离级别和存储引擎
Apr 12 MySQL
MySql分区类型及创建分区的方法
Apr 13 MySQL
MySQL如何修改字段类型和字段长度
Jun 10 MySQL
MYSQL中文乱码问题的解决方案
Jun 14 MySQL
MySQL一劳永逸永久支持输入中文的方法实例
Aug 05 MySQL
Linux系统下MySQL配置主从分离的步骤
如何创建一个创建MySQL数据库中的datetime类型
Mar 21 #MySQL
mysql 获取时间方式
Mar 20 #MySQL
mysql 生成连续日期及变量赋值
Mar 20 #MySQL
MySQL派生表联表查询实战过程
MySQL学习之基础命令实操总结
Mar 19 #MySQL
MySQL学习之基础操作总结
Mar 19 #MySQL
You might like
如何获得PHP相关资料
2006/10/09 PHP
php中的boolean(布尔)类型详解
2013/10/28 PHP
使用PHP curl模拟浏览器抓取网站信息
2013/10/28 PHP
php生成图形(Libchart)实例
2013/11/06 PHP
Zend Framework基本页面布局分析
2016/03/19 PHP
php结合redis高并发下发帖、发微博的实现方法
2016/12/15 PHP
golang实现php里的serialize()和unserialize()序列和反序列方法详解
2018/10/30 PHP
javascript中创建对象的几种方法总结
2013/11/01 Javascript
javascript生成json数据简单示例分享
2014/02/14 Javascript
Javascript学习笔记之函数篇(五) : 构造函数
2014/11/23 Javascript
浅谈Sizzle的“编译原理”
2015/04/14 Javascript
js获取所有checkbox的值的简单实例
2016/05/30 Javascript
jquery实现全选、不选、反选的两种方法
2016/09/06 Javascript
纯js实现手风琴效果代码
2020/04/17 Javascript
详解React中的组件通信问题
2017/07/31 Javascript
JS使用tofixed与round处理数据四舍五入的区别
2017/10/25 Javascript
浅谈javascript中的prototype和__proto__的理解
2019/04/07 Javascript
JavaScript设计模式之门面模式原理与实现方法分析
2020/03/09 Javascript
基于jQuery拖拽事件的封装
2020/11/29 jQuery
Vue.extend 登录注册模态框的实现
2020/12/29 Vue.js
Python中使用OpenCV库来进行简单的气象学遥感影像计算
2016/02/19 Python
python将一个英文语句以单词为单位逆序排放的方法
2018/12/20 Python
python argparser的具体使用
2019/11/10 Python
python代码打印100-999之间的回文数示例
2019/11/24 Python
python 获取当前目录下的文件目录和文件名实例代码详解
2020/03/10 Python
Mac PyCharm中的.gitignore 安装设置教程
2020/04/16 Python
python 30行代码实现蚂蚁森林自动偷能量
2021/02/08 Python
浅谈pc和移动端的响应式的使用
2019/01/03 HTML / CSS
世界上最具创新性的增强型知名运动品牌:Proviz
2018/04/03 全球购物
美国Randolph太阳镜官网:美国制造的飞行员太阳镜和射击眼镜
2018/06/15 全球购物
Myprotein芬兰官网:欧洲第一运动营养品牌
2019/05/05 全球购物
行政人员工作职责
2013/12/05 职场文书
简易版租房协议书范本
2014/10/13 职场文书
2014年转正工作总结
2014/11/08 职场文书
《平行四边形的面积》教学反思
2016/02/16 职场文书
推荐六本经典文学奖书籍:此生必读
2019/08/22 职场文书