美文网首页
mysql批量删除大数据

mysql批量删除大数据

作者: 赖小赖gogogo | 来源:发表于2018-07-20 10:10 被阅读47次

    mysql一次性删除大量数据是有可能造成死锁的,而且也会抛异常
    The total number of locks exceeds the lock table size in MySQL
    这是由于需要删除的数据太大,mysql给的buffer好像只有8MB左右
    lock wait timeout exceed 超时

    所以需要分批处理,这也是操作大数据时一种常见的思路
    网上比较好的一种方法是:
    首先找出符合条件的最大id(这里的id是有序的,不需要连续)
    select max(id) from table_name where create_time < '2017-04-06'
    在where字段上建立索引可提高效率
    千万左右的数据大概需要10多秒
    接着按id删除,一次删除10k,循环删除
    delete from table_name where id < maxId limit 10000

    相关文章

      网友评论

          本文标题:mysql批量删除大数据

          本文链接:https://www.haomeiwen.com/subject/czrfmftx.html