清除脏数据

199 阅读1分钟

有个项目,外包开发的,本该加锁的,没做处理,结果导致查询失败,奔溃了。

现在需要把冗余的数据,清除掉,并建立相关索引。操作语句如下:

DELETE wx_qr_code_user FROM
    wx_qr_code_user ,
    (
        SELECT
            MIN(id) id,
           wx_qr_code_id, user_open_id
        FROM
            wx_qr_code_user
        GROUP BY
            wx_qr_code_id, user_open_id
        HAVING
            COUNT(*) > 1
    ) t2
        WHERE
 wx_qr_code_user.wx_qr_code_id=t2.wx_qr_code_id
AND wx_qr_code_user.user_open_id=t2.user_open_id
AND wx_qr_code_user.id > t2.id;

数据如果比较多就会执行很长时间,执行完了之后就手动添加一下索引吧。