您现在的位置: 启天网 >> 技术中心 >> 数据库 >> 正文
今天是:
MySQL删除表中大批量的数据           ★★★★ 【字体:
MySQL删除表中大批量的数据
作者:Java自由…    文章来源:网络    点击数:    更新时间:2008-10-9

假设有一个表(osc_logs)有2000万条记录,我们要在业务不停止的情况下删除其中status=1的所有记录,差不多有1800万条,直接执行 DELETE FROM osc_logs WHERE status=1 会发现删除失败,因为lock wait timeout exceed的错误。因为这条语句所涉及的记录数太多了,因此我们可以分批来删除,比如每10000条进行删除,那么我们可以利用MySQL这样的语句来完成


DELETE FROM osc_logs WHERE status=1 ORDER BY log_id LIMIT 10000;


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

执行这条语句可以写一个循环就可以了。

文章录入:junsan    责任编辑:junsan05 
  • 上一篇文章:
  • 下一篇文章:
  • 最新热点 最新推荐 相关文章
    MySql无限分类结构
    MySQL数据库操作实战
    Microsoft JET Database Engine 错误 '…
    在一个机机上让 Microsoft SQL Server 2000…
    SQL SERVER性能优化综述
    mysql INSERT command denied to user 错误…
    微软关于MS SQL Server数据库置疑的解决办法
    SQL Server数据库性能的优化
    SQL Server两种修改对象所有者的方法
    修改SQL Server数据库中的逻辑文件名
     网友评论:(最新10条。只代表网友观点,与本站立场无关!)