`
酷的飞上天空
  • 浏览: 521718 次
  • 性别: Icon_minigender_1
  • 来自: 无锡
社区版块
存档分类
最新评论

通过定时任务执行mysql的定期删除和新建分区,此处是按日分区

 
阅读更多

使用python脚本作为命令脚本,linux的定时任务来每天定时执行

#!/usr/bin/python
# -*- coding: utf8 -*-
import pymysql
import datetime
import calendar

#要分区的表
table_name = 'my_table'
#连接数据库的信息
host,user,passwd,db = ('127.0.0.1','root','123456','test')
#保留数据的天数
days = 2

#===================================================
'''
#根据月分区,计算出要删除的上月分区名称和下月新增的分区名称
def add_months(dt,months):
    month = dt.month - 1 + months
    year = dt.year + month / 12
    month = month % 12 + 1
    day = min(dt.day,calendar.monthrange(year,month)[1])
    return dt.replace(year=year, month=month, day=day)

today = datetime.datetime.today()
last_date = add_months(today,-1) 
next_date = add_months(today,1)
next_next_date = add_months(next_date,1)

last_p = 'p%s' % last_date.strftime('%Y%m')
next_p = 'p%s' % next_date.strftime('%Y%m')
'''

#===================================================
#根据天分区,根据保留的天数计算出要删除的分区名称和要新增的分区名称
today = datetime.datetime.today()
last_date = today-datetime.timedelta(days)
next_date = today+datetime.timedelta(1)
next_next_date = today+datetime.timedelta(2)

last_p = 'p%s' % last_date.strftime('%Y%m%d')
next_p = 'p%s' % next_date.strftime('%Y%m%d')

sql_add_p = 'alter table %s add partition (partition %s values less than (to_days(\'%s\')))' %(table_name,next_p,next_next_date.strftime('%Y-%m-%d'))
sql_del_p = 'alter table %s drop partition %s' %(table_name,last_p)


#===================================================
#连接数据库,执行删除和新增分区的sql语句
#print sql_add_p
#print sql_del_p
print '==============================================\nstart work:\n%s\n%s' %(sql_add_p,sql_del_p)
conn = pymysql.connect(host,user, passwd, db)
cur = conn.cursor()
cur.execute(sql_add_p)
cur.execute(sql_del_p)
conn.close()

 如果是以前没有分过区的表,则需要先创建一个分区,然后才能执行上面的代码

 

分享到:
评论

相关推荐

    mysql 实现定时给表追加分区

    实现mysql 每天定时自动给数据库表追加分区,包含存储计划和存储过程

    MySQL分区表自动创建及删除存储过程

    MySQL事件调度器允许在预定义的时间执行特定任务,如定期创建和删除分区。这个事件可能会按照每天、每周或每月等周期触发,确保分区表始终保持最优状态。 "表.txt"文件可能包含了一些示例表结构或者分区设计的说明...

    MySQL定时执行脚本(计划任务)命令实例

    总结来说,MySQL的定时执行脚本功能通过`EVENT`对象提供了强大的定时任务能力,允许开发者按需设置执行频率,执行各种SQL操作,包括数据更新、备份、清理等。这不仅提高了效率,也降低了系统的复杂性。通过熟练掌握...

    mysql实现自动创建与删除分区

    `EVENT_AUTO_CREATE_DROP_PARTITION.sql`可能定义了一个数据库事件,定期执行删除过期分区的存储过程。这个事件可以根据业务需求设置,比如每天、每周或每月运行一次。 ```sql DELIMITER // CREATE EVENT drop_old_...

    windows定时任务备份mysql数据库脚本

    windows定时任务备份mysql数据库脚本

    详解SpringBoot 创建定时任务(配合数据库动态执行)

    SpringBoot是一个开源的Java基础框架,...结合Mybatis和MySQL,可以在不重启应用的情况下调整定时任务的执行周期,以适应业务的变化需求。这种机制为复杂的后台任务调度提供了极大的便利,使得任务管理更加高效和可靠。

    (动态多)定时任务源码自动运行调度后台执行

    3、SpringCloudSchedule定时任务(使用mybatis读写mysql数据库, spring实现定时任务, 按照间隔时间或固定时间方式执行定时任务) 4、定时自动运行任务(在数据库中设置好定时时间,及运行的程序,及参数) 5、C#...

    SpringBoot定时任务实现Oracle和mysql数据同步

    首先,我们需要了解Spring Boot中的定时任务是通过`@Scheduled`注解实现的,它来自于Spring的Task模块。这个注解可以标记在方法上,使得该方法按预定的时间间隔执行。例如: ```java import org.springframework....

    Python定时任务,将xml报文解释入mysql数据库

    要使用APScheduler,首先需要安装库,然后定义一个处理XML和数据库操作的函数,最后配置调度器来定期执行这个函数。 XML报文的解析是另一个关键步骤。Python的标准库中包含ElementTree模块,它能方便地处理XML文档...

    springmvc+spring+mysql+maven定时任务

    在IT行业中,构建一个基于Spring MVC、Spring、MySQL和Maven的定时任务系统是一项常见的需求。这个系统通常用于执行周期性的后台操作,如数据同步、报表生成或清理过期数据等。下面将详细讲解如何利用这些技术实现...

    创建mysql表分区的方法

    【MySQL 表分区详解】 ...综上所述,MySQL表分区是大数据场景下的有力工具,通过合理设计和使用,可以显著提升数据库的性能和管理效率。在实际应用中,应结合业务需求和查询模式选择合适的分区策略。

    Springboot整合Quartz实现定时任务数据库动态配置

    在IT行业中,定时任务是许多应用不可或缺的一部分,用于执行定期的后台处理,如数据同步、报表生成、清理任务等。Spring Boot作为一个轻量级的Java框架,提供了与各种定时任务库集成的能力,其中Quartz是一个广泛...

    mysql表分区

    MySQL表分区支持不同的分区策略,例如range分区、list分区和hash分区等。 **range分区**是根据数据范围来进行分区的一种方法。它允许数据根据列值的范围被分配到不同的分区中。例如,可以根据日期、数值或其他连续...

    mysql数据库自动定时备份

    MySQL数据库的自动定时备份是数据库管理中的重要环节,它确保了数据的安全性和可恢复性,尤其是在发生意外情况如系统故障、硬件损坏或人为错误时。本教程将详细讲解如何设置MySQL数据库的自动定时备份,包括步骤、所...

    MySQL分区分表方案实践手册

    总之,《MySQL分区分表方案实践手册》将引导读者全面了解MySQL分区的理论与实践,通过实例解析和最佳实践分享,帮助读者在面对大数据挑战时,能够有效利用分区技术提升数据库性能,实现高效的数据管理。

    mysql定时任务(备份和还原数据库)

    生成sql文件备份和还原,经过本人测试,可以使用。实现定时功能

    mysql 数据库表分区

    - 提供了对MySQL表分区的操作接口,包括创建、追加和删除分区。 - 追加分区意味着可以在表已经存在分区的基础上增加新的分区,适应不断增长的数据。 - 创建分区时,可以根据业务需求设置分区条件,如日期范围、...

Global site tag (gtag.js) - Google Analytics