温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

mysql怎么批量删除数据库中的数据

发布时间:2020-09-29 14:56:49 来源:亿速云 阅读:368 作者:小新 栏目:MySQL数据库

mysql怎么批量删除数据库中的数据?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!

mysql批量删除数据库中数据的方法:通过LIMIT参数分批删除,语法为【DELETE FROM syslogs WHERE status=1 ORDER BY statusid LIMIT 10000】。

mysql批量删除数据库中数据的方法:

假设有一个表(syslogs)有1000万条记录,需要在业务不停止的情况下删除其中statusid=1的所有记录,差不多有600万条, 直接执行 DELETE FROM syslogs WHERE statusid=1 会发现删除失败,因为lock wait timeout exceed的错误。

因为这条语句所涉及的记录数太多,因此我们通过LIMIT参数分批删除,比如每10000条进行一次删除,那么我们可以利用 MySQL这样的语句来完成:

 DELETE FROM syslogs WHERE status=1 ORDER BY statusid LIMIT 10000;

然后分多次执行就可以把这些记录成功删除。

注:

  • 执行大批量删除的时候注意要使用上limit。因为如果不用limit,删除大量数据很有可能造成死锁。

  • 如果delete的where语句不在索引上,可以先找主键,然后根据主键删除数据库。

  • 平时update和delete的时候最好也加上limit 1 来防止误操作。

感谢各位的阅读!看完上述内容,你们对mysql怎么批量删除数据库中的数据大概了解了吗?希望文章内容对大家有所帮助。如果想了解更多相关文章内容,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI