Скрипт партиционирования
Переносим записи в архивную таблицу. Для этого напишем скрипт который по крону будет выполнять набор действий один раз месяц. - Создание таблицы назначения - Копирование записей в таблицу - Удаление старых записей из таблицы источника
Напишем скрипт
Создадим и отредактируем скрипт
nano /scripts/archive_table.sh
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
db='db_name'
username='username'
password='password'
source_table='source_table'
month=`date +%Y-%m-%d -d "1 month ago"`
destination_table='$month_table'
create_query="CREATE TABLE "$destination_table" LIKE "$source_table";"
insert_query="INSERT INTO "$destination_table" SELECT source.* FROM "$source_table" as source WHERE add_time < '"$month"';"
delete_query="DELETE FROM "$source_table" WHERE add_time < '"$month"';"
echo $create_query
echo $insert_query
echo $delete_query
mysql -u$username -p$password -e "$create_query" $db &&
mysql -u$username -p$password -e "$insert_query" $db &&
mysql -u$username -p$password -e "$delete_query" $db
Дадим права на выполнение
# chmod +x /scripts/archive_table.sh
Добавим в cron
# crontab -e
0 0 1 * * /scripts/archive_table.sh
P.S. Это, конечно, не партиционирование, но иногда бывает полезным
comments powered by Disqus