MySQL表按月切割

按月份切割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到指定位置压缩存储保存
posted @ 2018-01-05 14:46  叨客厨子  阅读(701)  评论(0编辑  收藏  举报