MySQL按时间进行表分区的方法代码
短信预约 -IT技能 免费直播动态提醒
目录
- 创建按月份分区的表
- 开启数据库事件
- 临时配置(服务重启会失效)
- 修改my.cnf文件(推荐)
- 定时事件自动建分区
- 查询表分区信息
- 总结
创建按月份分区的表
create table if not exists table_name
(
id bigint auto_increment comment '主键id',
create_by varchar(64) not null comment '创建者',
create_time datetime default CURRENT_TIMESTAMP not null comment '创建时间',
update_by varchar(64) null comment '更新者',
update_time datetime default CURRENT_TIMESTAMP null on update CURRENT_TIMESTAMP comment '更新时间',
primary key (id, create_time)
)
comment '测试表名' partition by range (TO_DAYS(create_time)) (
partition P202401 values less than (TO_DAYS('2024-02-01')) ,
partition P202402 values less than (TO_DAYS('2024-03-01')) ,
partition P202403 values less than (TO_DAYS('2024-04-01')) ,
partition P202404 values less than (TO_DAYS('2024-05-01'))
);
开启数据库事件
临时配置(服务重启会失效)
-- 开启事件
SET GLOBAL event_scheduler = ON;
-- 查看事件是否开启
SHOW VARIABLES LIKE '%event_sche%';
修改my.cnf文件(推荐)
- 进入mysql所在的服务器
sudo vi /etc/my.cnf
- 找到 [mysqld],添加如下内容
event_scheduler = ON
- 重启 MySQL 服务以使更改生效
sudo systemctl restart mysqld
定时事件自动建分区
- 例:提前创建下个月的分区,如2024-04-01创建5月份的分区 P202405,2024-05-01创建6月份的分区。
create event event_create_partition on schedule
every '1' MONTH starts '2024-04-01 00:00:00'
on completion preserve
enable
do
BEGIN
-- 当前时间 2024-04-01 00:00:00
-- _DATE = 2024-05-01
DECLARE _DATE VARCHAR(10) DEFAULT ADDDATE(SUBDATE(CURDATE(), DAY(CURDATE()) - 1), INTERVAL 1 MONTH);
-- P202405
SET @PARTITION_NAME = CONCAT('P', DATE_FORMAT(_DATE, '%Y%m'));
-- 2024-06-01
SET @SHEAR_DATE = CONCAT('', ADDDATE(LAST_DAY(_DATE), 1));
SET @SQL = CONCAT('ALTER TABLE table_name ADD PARTITION (PARTITION ', @PARTITION_NAME, ' VALUES LESS THAN (TO_DAYS("', @SHEAR_DATE, '")))');
PREPARE STMT FROM @SQL;
EXECUTE STMT;
DEALLOCATE PREPARE STMT;
END;
注意: 数据库
event_scheduler = ON
要确认有开启,否则 event_create_partition 事件不会执行。
- 查看所有事件
SHOW EVENTS;
查询表分区信息
SELECT
TABLE_SCHEMA,
TABLE_NAME,
PARTITION_NAME,
PARTITION_METHOD,
PARTITION_EXPRESSION,
SUBPARTITION_NAME,
SUBPARTITION_METHOD,
SUBPARTITION_EXPRESSION
FROM information_schema.partitions
WHERE TABLE_SCHEMA = '数据库名'
AND TABLE_NAME IN ('table_name')
ORDER BY PARTITION_NAME DESC;
总结
到此这篇关于MySQL按时间进行表分区的文章就介绍到这了,更多相关MySQL按时间表分区内容请搜索编程网(www.lsjlt.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.lsjlt.com)!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
MySQL按时间进行表分区的方法代码
下载Word文档到电脑,方便收藏和打印~
下载Word文档
相关文章
- 在 Java 中怎样生成随机正方形坐标?(Java中如何生成随机正方形坐标)
- 如何在 Java 中定义 list 并实现反转?(Java定义list怎样实现反转)
- Java 中 SimpleDateFormat 如何巧妙处理闰年?(Java SimpleDateFormat如何处理闰年)
- Java 中 BeanUtils 工具类常用方法有哪些?(Java BeanUtils工具类常用方法有哪些)
- 如何在 Java 数据分析中应用 ARIMA 模型?(ARIMA模型在Java数据分析中的应用)
- 如何使用 Java 的 Scanner 读取二进制文件?(Java的Scanner如何读取二进制文件)
- 在 Java 中如何进行变量的声明?(Java中怎么声明一个变量)
- 如何将 Java 父类强制转换成子类?(java父类怎么强制转换成子类)
- 在 Java 中,add()函数的最佳实践究竟是什么?(在Java中add()函数最佳实践是什么)
- 为什么要选择 Gosling Java 而不是其他版本呢?(为什么选择Gosling Java而不是其他版本)
猜你喜欢
MySQL按时间进行表分区的方法代码
目录创建按月份分区的表开启数据库事件临时配置(服务重启会失效)修改my.cnf文件(推荐)定时事件自动建分区查询表分区信息总结 创建按月份分区的表create table if not exists table_name(id
2024-09-29
2024-04-02
2024-04-02
MySQL对数据表已有表进行分区表的实现方法是什么
本篇内容介绍了“MySQL对数据表已有表进行分区表的实现方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!操作方式@1 可以使用ALT
2023-06-25
mysql表分区的方式和实现代码示例
MySQL表分区是一种将表数据按特定规则分配到多个物理子集的技术,提升查询性能、磁盘利用率和表维护效率。分区方式包括范围分区、哈希分区、密钥分区和复合分区。本文提供了实现代码示例。优势包括查询性能优化、磁盘空间利用率、表维护效率、伸缩性和恢复速度。需要注意的是,分区需要管理开销、索引覆盖范围、数据一致性、复杂查询和数据完整性等问题。
2024-04-02
2024-04-02
如何进行Linux Kernel iowait 时间的代码原理分享
这篇文章给大家介绍如何进行Linux Kernel iowait 时间的代码原理分享,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。当task发生iowait的时候,内核对他们的处理方法是将task切换出去,让可运行的t
2023-06-06
Python获取代码运行时间的几种方法
Python获取代码运行时间的几种方法1、方法一:#python 的标准库手册推荐在任何情况下尽量使用time.clock().#只计算了程序运行CPU的时间,返回值是浮点数import timestart =time.clock()#中间
2023-01-31
2024-04-02
2024-04-02
OpenResty中实现按QPS、时间范围、来源IP进行限流的方法
本文详细介绍了在OpenResty中按QPS、时间范围和来源IP进行限流的方法。使用ngx_http_limit_req_module模块可以按QPS限流,使用lua-resty-limit-traffic模块可以按时间范围限流,而ngx_http_limit_conn_module模块则用于按来源IP限流。此外,OpenResty还允许组合这些方法实现更复杂的限流规则。配置限流时,需要考虑准确定义限流键、设置合理阈值、监控和调整策略以及确保进程共享限流区域等因素。
2024-04-02
2024-04-02
使用Python统计代码运行时间的两种方法
有时候我们需要记录一个程序运行的时间,下面这篇文章主要给大家介绍了关于使用Python统计代码运行时间的两种方法,文中通过图文以及示例代码介绍的非常详细,需要的朋友可以参考下
2022-12-23
6种快速统计代码执行时间的方法,真香!
我们在日常开发中经常需要测试一些代码的执行时间,但又不想使用向 JMH(Java Microbenchmark Harness,Java 微基准测试套件)这么重的测试框架,所以本文就汇总了一些 Java 中比较常用的执行时间统计方法,总共包
Java计算程序代码执行时间的方法有哪些
小编给大家分享一下Java计算程序代码执行时间的方法有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!有时候为了排查性能问题,需要记录完成某个操作需要的时间,我
2023-05-30
sqlserver降水量数据按照时间分组行转为列的操作方法
目录sqlserver降水量数据按照时间分组,行转为列按照时间分组,将行转为列sqlserver降水量数据按照时间分组,行转为列查询降雨量数据如下:按照时间分组,将行转为列select TM,sum(case when STCD =
2024-08-10
常用的时间序列分析方法总结和代码示例
时间序列是最流行的数据类型之一。视频,图像,像素,信号,任何有时间成分的东西都可以转化为时间序列。
JVM 运行时数据区域,书中没有说清楚的方法区、永久代、元空间
数据库系列吭哧吭哧写得差不多了,准备寒假看完 JVM,然后开学来看看框架背背八股就准备秋招了。话不多说,JVM 第一个知识点必定要奉献给 Java 程序运行时的数据区域划分。
Win7下进行网络宽带连接时出现错误代码651网络故障的解决方法
在Windows 7下多用户进行网络宽带连接时就出现错误代码“651”的网络故障,发生“651”的javascript网络故障原因较多,下面是解决错误代码“651”的网
2023-06-01
编程热搜
[mysql]mysql8修改root密码
use mysqlselect * from user where user="root";update user set password=password("mysql@2020") where user="root";ERROR 1064 (42000)MySQL专题3之MySQL管理
1、启动以及关闭MySQL服务器- 首先,我们需要通过以下命令来检查MySQL服务器是否已经启动:ps -ef | grep mysqld- 如果MySQL已经启动,以上命令将输出mysql进程列表,如果mysql未启动,你可以使用以下
编程资源站
- 资料下载
- 历年试题
目录
友情链接编程网
留言反馈