エンジニア的な技術的なブログ

webエンジニアの開発の知見を書きます。PHP、javascript、postgres、mysql、あと多少のインフラ周りとか。

悩んでないかい? indexされてない大量データを鬼早くdeleteする方法 [mysql]

 

 

鬼早くdeleteとか書いたけど、

       deleteなんて使わない!!!

 

そんなトロトロやってらんないっす><

 

じゃあどうやのか、

1. create table で新しいテーブル作る

2. insert select で古いテーブルから新しいテーブルに必要なデータ移す

3. テーブル名をそれぞれリネーム

4. drop table で古いテーブルさようなら

 

<超 注意>

一時的にサーバの容量が上がるから、その容量が十分サーバにあることを

確認してからやってね!

 

mysqlに入って下記を実行すると。

 

create table new_table like now_table;

insert into new_table (select * from now_table where [欲しいデータの絞り込み])

rename table now_table to old_table, new_table to now_table;

drop table old_table;

 

 実験している人の記事は下記で

https://hiroakis.com/blog/2013/10/04/mysql-%E5%AE%B9%E9%87%8F%E7%A2%BA%E4%BF%9D%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AE%E3%83%87%E3%83%BC%E3%82%BF%E5%89%8A%E9%99%A4%E6%96%B9%E5%BC%8F/