6,000 万件のエントリがあるデータベースで、過去 10 日間のデータを保持し、残りを削除したいと考えています。 |
署名なし | NULL |
| 署名なし | | NO | MUL | stime (10) なし |
キーワード | char(80) | NULL |
このデータを使用して、長い間削除しました。が反映されませんでした。どのように操作すれば希望を実現できるのか教えてください。
-----解決策--------------------------------
バッチ
mysql> delete from bit_dcsval where insert_datetime<'2009-10-01' order by insert_datetime 制限 10000;クエリ OK、10000 行が影響を受け、警告 1 件 (3 分 48.40 秒)
上記はインターネットからの例です
------解決策---------
6,000万データの場合、10日 データのみの計算この部分を新しいテーブルに選択し、元のテーブルを切り詰めて、新しいテーブルの名前を元のテーブルに変更することをお勧めします
すべてがうまくいけば、ほんの少しだけかかります。秒。
truncate 操作が最も効率的ですが、当然ながら元に戻すことはできません。
------解決策------------------
何が間違っていたのでしょうか?
DELETE TABLE search;RENAME TABLE search_tmp TO search;
これはどうでしょうか?