mysql批量删除大量数码,mysql批量删除

mysql批量删除大量数量

mysql批量删除大批量数码,mysql批量删除

mysql批量删除大量多少

只要有一个表(syslogs)有一千万条记下,须要在事情不为止的情况下删除个中statusid=一的享有记录,大致有600万条,
间接施行 DELETE FROM syslogs WHERE statusid=一 会开采除去失败,因为lock
wait timeout exceed的谬误。

因为那条语句所提到的记录数太多,由此大家由此LIMIT参数分批删除,比如每一千0条实行一回删除,那么大家得以行使

MySQL那样的语句来成功:

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

下一场分数次进行就能够把那一个记录成功删除。

注:

试行大量刨除的时候注意要动用上limit。因为只要不用limit,删除大批量数量很有异常的大只怕导致死锁。

假设delete的where语句不在索引上,能够先找主键,然后根据主键删除数据库。

平时update和delete的时候最佳也增添limit 1 来堤防误操作。

感激阅读,希望能支援到我们,谢谢我们对本站的支持!

http://www.bkjia.com/Mysql/1209176.htmlwww.bkjia.comtruehttp://www.bkjia.com/Mysql/1209176.htmlTechArticlemysql批量删除大量数据,mysql批量删除
mysql批量删除大批量数额
假若有二个表(syslogs)有一千万条记下,必要在职业不停歇的动静下删除当中sta…

要是有三个表(syslogs)有一千万条记下,需求在业务不停息的情况下删除在那之中statusid=一的兼具记录,大致有600万条,
直接实践 DELETE FROM syslogs WHERE statusid=一 会发掘除去失利,因为lock
wait timeout exceed的荒谬。

因为那条语句所波及的笔录数太多,因而大家透过LIMIT参数分批删除,比方每一千0条实行一回删除,那么我们得以应用

MySQL那样的语句来完结:

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

然后分数十次执行就可以把那个记录成功删除。

注:

实践大量刨除的时候注意要使用上limit。因为只要不用limit,删除大量数码很有极大可能变成死锁。

假诺delete的where语句不在索引上,能够先找主键,然后遵执照主人键删除数据库。

常常update和delete的时候最棒也增添limit 一 来防止误操作。

谢谢阅读,希望能援助到大家,多谢大家对本站的支撑!

您也许感兴趣的篇章:

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图