使用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 每天定时自动给数据库表追加分区,包含存储计划和存储过程
windows定时任务备份mysql数据库脚本
实现mysql按时间分区方式自动创建与删除分区,包括创建/删除日志记录,通过存储过程与事件联合实现,自动创建数量与删除数量可动态配置
用存储过程实现了MySQL数据库分区表的自动创建和自动删除功能。亲测有效。希望有用。
SpringBoot定时任务实现Oracle和mysql数据同步
数据库定时任务执行脚本,数据库脚本,定时任务,为了避免写大量的Java代码和减轻应用服务器压力
生成sql文件备份和还原,经过本人测试,可以使用。实现定时功能
在mysql中我们可以直接进行一些参数设置让它成定时为我们执行一些任务了,这个虽然可以使用windows或者linux中的计划任务实现,但是mysql本身也能完成
3、SpringCloudSchedule定时任务(使用mybatis读写mysql数据库, spring实现定时任务, 按照间隔时间或固定时间方式执行定时任务) 4、定时自动运行任务(在数据库中设置好定时时间,及运行的程序,及参数) 5、C#...
通过配置数据库连接信息和要执行的sql语句,可实现定时执行多个sql语句。 所要执行的语句只能是写死的,可支持sqlserver mysql oracle。 配置说明: config/sys.properties 中指定数据库类型及连接信息,执行间隔...
Python定时任务,将xml报文解释入mysql数据库
表分区是最近才知道的哦 ,以前自己做都是分表来实现上亿级别的数据了,下面我来给大家介绍一下mysql表分区创建与使用吧,希望对各位同学会有所帮助。表分区的测试使用,主要内容来自于其他博客文章以及mysql5.1的...
Springboot整合Quartz实现定时任务数据库动态配置,新增任务、修改cron表达式、暂停任务、恢复任务、删除任务等操作
windows环境数据库备份任务脚本文件,可以用来添加定时任务执行数据库备份。由于下载次数导致下载所需积分过多。重新提交
springmvc+spring+mysql+maven定时任务
MySQL分表和分区最佳攻略 word版本,
假设前提:每天晚上10点到早上5点,每10分钟定时执行存储过程。 实现方式: 第一种是利用Mysql本身实现,制定event定时任务,可以借助Navicat For Mysql或其他数据库开发工具去做; 第二种实现方式是利用linux的定时...
分完全备份和增量备份,可立即执行和定期执行.点击'完全备份'和'增量备份'即可开始周期任务.定期完全备份的时间为自任务开始后每隔48小时的凌晨5点,定期增量备份为自任务开始后每隔24小时的凌晨6点.目前此版本已实现...
php for mysql的表分区类,为mysql的大数据查询提供分区支持. 该类包含追加 创建 删除分区方法.可以通过索引 分类等字段为条件对数据库物理文件分离. 数据表的查询不受任何影响
MySQL分区分表方案实践手册 MySQL分区分表方案实践手册 MySQL分区分表方案实践手册 MySQL分区分表方案实践手册 仅供个人学习, 禁止转载及其他商业用途.