【MySQL】一定期間、特定の日付より以前のレコードを削除する cron設定有

低スペックのサーバを運用していると数十万行のレコードがあると重くなったりする場合があります。
そんなときに役立つSQL文をまとめました。

特定の日付より以前のレコードを削除

DELETE FROM [テーブル名] WHERE [日付カラム] < '2019-01-01 00:00:00';

一定期間が過ぎたら削除

例:現在から1カ月経過したデータは削除

DELETE FROM [テーブル名] WHERE ([日付カラム] < DATE_SUB(CURDATE(), INTERVAL 1 MONTH));

例:現在から半年経過したデータは削除

DELETE FROM [テーブル名] WHERE ([日付カラム] < DATE_SUB(CURDATE(), INTERVAL 6 MONTH));

例:現在から1年経過したデータは削除

DELETE FROM [テーブル名] WHERE ([日付カラム] < DATE_SUB(CURDATE(), INTERVAL 1 YEAR));

コマンド

例:現在から1カ月経過したデータは削除

mysql --user=[ユーザー名] --password=[パスワード] --database=[DB名] --execute="DELETE FROM [テーブル名] WHERE ([日付カラム] < DATE_SUB(CURDATE(), INTERVAL 1 MONTH))"

例:現在から半年経過したデータは削除

mysql --user=[ユーザー名] --password=[パスワード] --database=[DB名] --execute="DELETE FROM [テーブル名] WHERE ([日付カラム] < DATE_SUB(CURDATE(), INTERVAL 6 MONTH))"

例:現在から1年経過したデータは削除

mysql --user=[ユーザー名] --password=[パスワード] --database=[DB名] --execute="DELETE FROM [テーブル名] WHERE ([日付カラム] < DATE_SUB(CURDATE(), INTERVAL 1 YEAR))"

cron設定

cronの仕様
分 時 日 月 曜日 コマンド
※曜日は日(0)-土(6)

例:毎日3時に実行 現在から1カ月経過したデータは削除

0 3 * * * mysql --user=[ユーザー名] --password=[パスワード] --database=[DB名] --execute="DELETE FROM [テーブル名] WHERE ([日付カラム] < DATE_SUB(CURDATE(), INTERVAL 1 MONTH))"

例:毎週日曜日3時に実行 現在から半年経過したデータは削除

0 3 * * 0 mysql --user=[ユーザー名] --password=[パスワード] --database=[DB名] --execute="DELETE FROM [テーブル名] WHERE ([日付カラム] < DATE_SUB(CURDATE(), INTERVAL 6 MONTH))"

例:毎月1日に実行 現在から1年経過したデータは削除

0 0 1 * * mysql --user=[ユーザー名] --password=[パスワード] --database=[DB名] --execute="DELETE FROM [テーブル名] WHERE ([日付カラム] < DATE_SUB(CURDATE(), INTERVAL 1 YEAR))"
自由な働き方をしてみませんか
フリーランスといえばクラウドソーシングが連想されると思います。 しかし「クラウドワークス」や「ランサーズ」調べてみると仕事の単価が非常に安い。 せっかく身につけた技術力がクラウドソーシングでは全く価値がなくなってしまいます。
そこでオススメなのがリモートワークの案件が多く翌月15日報酬として振り込まれる
クラウドテック」です。 掲載案件では平均月60万週3~4日勤務の案件が豊富生活スタイルに合わせた働き方を設計できます。 また福利厚生が充実し旅行、レジャー、家事代行、ヘビーシッター、健康診断など100種類以上を無料で使えます。
  • 97%がリモートのお仕事
  • 週4日、週3日OKのお仕事多数
  • 登録社数74万件業界トップクラス
  • 2〜4週間程度でお仕事決定
まだ間に合います。まずは無料登録をして自分に合った案件がないか確認してみてください。きっと魅力的な案件が見つかることでしょう。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする