タグ

2017年11月28日のブックマーク (1件)

  • MySQLから大量のレコードをちまちま削除するメモ

    「ちまちま削除する」なので、トランザクションでAll or Nothingを保証したい場合は使えない。 id をプライマリーキー(ただしサロゲートキーかどうかは問わない)、 hoge, last_update が来消し込みに使いたいカラムだとする。 プライマリーキー(またはユニークキー)がないテーブルのことは考えない。 KEY(hoge, last_update) がある場合 ターゲットのプライマリーキーを取り出して DELETE .. WHERE id IN .. の形に落とし込む 行ロックに落とし込める idの型を選ばない(varcharだろうと使える) 自前でINリストを作るのが面倒ならGROUP_CONCATという手もあるけどその場合は group_concat_max_len に注意 DELETE の方でもとの条件をANDしておくのを忘れると事故ることがある。。 けどあんまりI