ホームページ >バックエンド開発 >PHPチュートリアル >6,000 万件のエントリがあるデータベースで、過去 10 日間のデータを保持し、残りを削除したいと考えています。

6,000 万件のエントリがあるデータベースで、過去 10 日間のデータを保持し、残りを削除したいと考えています。

WBOY
WBOYオリジナル
2016-06-13 13:41:38788ブラウズ

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;

これはどうでしょうか?

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。