MySQL表按月切割

时间:2024-11-25 18:37:37

按月份切割MySQL表数据:

千万级别的数据量也可在毫秒内完成切割操作

注:数据无价请提前自行备份

#!/bin/bash
USERNAME=MySQL_user
PASSWORD=MySQL_pwd
DB_NAME=DBname
HOST=127.0.0.1
LAST_MONTH=`date -d "-1month" +%Y_%m` # 定义函数执行登陆数据库
function mysql_cmd()
{
CMD=$1
CMD=${CMD:-"quit;"}
/usr/bin/mysql -u${USERNAME} -p${PASSWORD} -h ${HOST} -e "${CMD}"
} # 将 数据表 表按月切割
$(mysql_cmd "use $DB_NAME;create table new_tablename_tmp like tablename;rename table tablename to tablename_old_${LAST_MONTH}, new_tablename_tmp to tablename;") ##################################################
sleep 20 # 将从新命名的old表数据dump到s3存储;
# 可以将备份表dump到指定位置压缩存储保存