MySQL 大量刪除資料的問題 (續)

剛剛和同事小菜哥討論了一下昨天我問的MySQL 大量刪除資料的問題,想到一個比較好的解法:

這個方法一解下去,一秒不到就弄好了,資料庫頓時少了 60 MB 的資料。不過我還是想知道,有沒有辦法用純 SQL 來解(感覺上難度不低)。

(最佳的解法應該是用 Store Procedure 存到 MySQL 內,這樣它就會自己 Maintain 數目在 1500 筆,但這方面我並不是很熟悉。)

Posted in DB
3 comments on “MySQL 大量刪除資料的問題 (續)
  1. kong0107 says:

    第10行的SQL後面,LIMIT 1499, 1即可
    然後第13行的function name應是小寫….XD

  2. kong0107 says:

    MySQL的DELETE可以用ORDER BY,所以while迴圈可以:
    while(list($url_id, $count) = mysql_fetch_row($result)) {
    mysql_query(“DELETE FROM tbl WHERE url_id = ‘$url_id’ ORDER BY id ASC LIMIT ” . ($count – 1500));
    }
    連臨界值也不用求出來

Leave a Reply

Your email address will not be published.