Mysql 分区表基本操作和注意事项

简介: Mysql分区优势1、存储更多的数据2、优化查询3、并行处理4、快速删除数据5、更大的数据吞吐量

1、Mysql分区优势

1、存储更多的数据
2、优化查询
3、并行处理
4、快速删除数据
5、更大的数据吞吐量

2、分区的类型

  • range分区:根据一个连续的区间范围,将数据分散存储与不同的分区,支持对字段名或表达式进行分区
  • list分区 :根据给定的值列表,将数据分散存储到不同的分区,支持对字段名或者表达式进行分区
  • hash分区:根据给定的分区个数,结合一定的hash算法,将数据分散存储到不同的分区,可以使用用户自定义的函数
  • key分区:与hash分区类似,但是只能使用mysql自带的hash函数
  • columns分区:为解决MySQL5.5版本之前RANGE分区和LIST分区支持整数分区而在MySQL5.5版本新引入的分区类型 子分区:对数据表中的每个分区再次进行分区

、Mysql分区注意事项

1、分区键必须作为主键的一部分,因此分区键建议与原来表id作为联合主键!!!!!!!!!。
2、、查询条件里需包含分区键(非必选)
3、分区不要提前建太多,总数不能超过1024
4、分区的字段,必须是表上所有的唯一索引(或者主键索引)包含的字段的子集
5、range分区:分区字段必须是整型或者转换为整型,或者时间类型
6、当月分区不可删除
7、分区只能在当前基础上增加,不能反向增加分区(删除的分区,直接增加那个分区是不行的)

分区使用

1、创建分区

-- 创建分区表
CREATE TABLE `application_invoke_log` (
  `ID` bigint(20)  not null COMMENT 'ID',
  `SOURCE_IP` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '源请求IP地址',
  `APPKEY` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '发起请求的应用',
  `METHOD` varchar(4) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '请求方法',
  `PATH` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '请求路径',
  `ARG` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '请求参数',
  `RESPONSE_TIME` bigint(20) DEFAULT NULL COMMENT '响应时间',
  `INVOKE_RESULT` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '调用结果',
  `INVOKE_TIME` datetime not null COMMENT '调用时间',
`IS_BLOCK` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `IS_EXP` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `EXP_MSG` varchar(1000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  PRIMARY KEY (`ID`, `INVOKE_TIME`) USING BTREE
  INDEX `APPKEY`(`APPKEY`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 comment = '应用调用日志'
 PARTITION by range COLUMNS(INVOKE_TIME)(
    partition p202208 values less than('20220901')
)

2、查看分区信息

select * from information_schema.PARTITIONS where  table_name = 'application_invoke_log'

3、对存在的分区表修改

alter table application_invoke_log
PARTITION by range columns (INVOKE_TIME)(
PARTITION p202204 VALUES less than ('20220501'),
PARTITION p202205 VALUES less than ('20220601'),
PARTITION p202206 VALUES less than ('20220701')
)

4、查看分区数据

EXPLAIN select * from application_invoke_log where INVOKE_TIME = '2022-04-15 16:53:03' 

5、对存在的表新增分区,注意分区值只能递增

alter table application_invoke_log add partition 
(partition p202208 values less than('20220901'))

6、删除分区

alter table application_invoke_log drop partition p202101;

7、清空分区数据

alter table application_invoke_log truncate partition p202201;
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
监控 关系型数据库 MySQL
MySQL创建索引的注意事项
在数据库设计和优化中,索引的合理使用是提高查询性能和加速数据检索的关键因素之一。通过选择适当的列、了解数据分布、定期维护和监控索引性能,我们能够最大程度地发挥索引的优势,提高数据库的效率和响应速度。
424 0
|
监控 关系型数据库 MySQL
MySQL创建索引的注意事项
在索引的世界中,权衡是关键。权衡读写性能,权衡索引的数量和类型,权衡查询的频率和数据分布。通过谨慎的设计、定期的维护和持续的监控,我们能够确保索引在数据库中的角色得到最大的发挥,为应用提供更加高效和可靠的数据访问服务。在数据库优化的旅途中,索引是我们的得力助手,正确使用它将使数据库系统更具竞争力和可维护性。
100 0
|
分布式计算 DataWorks 关系型数据库
实时数仓 Hologres产品使用合集之如何将MySQL数据初始化到分区表中
实时数仓Hologres的基本概念和特点:1.一站式实时数仓引擎:Hologres集成了数据仓库、在线分析处理(OLAP)和在线服务(Serving)能力于一体,适合实时数据分析和决策支持场景。2.兼容PostgreSQL协议:Hologres支持标准SQL(兼容PostgreSQL协议和语法),使得迁移和集成变得简单。3.海量数据处理能力:能够处理PB级数据的多维分析和即席查询,支持高并发低延迟查询。4.实时性:支持数据的实时写入、实时更新和实时分析,满足对数据新鲜度要求高的业务场景。5.与大数据生态集成:与MaxCompute、Flink、DataWorks等阿里云产品深度融合,提供离在线
|
存储 关系型数据库 MySQL
MySQL 字符字段长度设置详解:语法、注意事项和示例
MySQL 字符字段长度设置详解:语法、注意事项和示例
1129 0
|
SQL 关系型数据库 MySQL
【MySQL】DQL-分组查询-语法&where与having的区别&注意事项&可cv例题语句
【MySQL】DQL-分组查询-语法&where与having的区别&注意事项&可cv例题语句
【MySQL】DQL-分组查询-语法&where与having的区别&注意事项&可cv例题语句
|
存储 关系型数据库 MySQL
MySQL 分区表
MySQL 分区表
224 4
|
分布式计算 DataWorks 关系型数据库
DataWorks产品使用合集之当需要将数据从ODPS同步到RDS,且ODPS表是二级分区表时,如何同步所有二级分区的数据
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
284 7
|
存储 关系型数据库 数据库
MySQL设计规约问题之是否可以使用分区表
MySQL设计规约问题之是否可以使用分区表
|
SQL 关系型数据库 MySQL
【MySQL】DQL-排序查询-语法&注意事项&可cv例题语句
【MySQL】DQL-排序查询-语法&注意事项&可cv例题语句
|
SQL 关系型数据库 MySQL
【MySQL】DQL-排序查询-语法&排序方式&注意事项&可cv例题语句
【MySQL】DQL-排序查询-语法&排序方式&注意事项&可cv例题语句

推荐镜像

更多