`

大量数据删除

 
阅读更多

今天领导安排一个任务,将一张日志表中7月份之前的日志都删除掉。

我查了一下数据量发现,现在总共有190多万的数据,7月份之前有150多万,这要删除大头啊。

开始,我使用delete语句,如下:

delete from log_table where create_time < '2013-07-01';

 这时候问题就来了,我等了5分钟了,程序好像死在那里了,没反应。同时,操作系统还设置了超时限制,如果一定时间不操作,系统会自动断开连接(我是远程连接的服务器。

感觉时间有点长,就决定先删一小部分,6月份之前的,不多只有4万多条。但是在删除中报了一个错误。

 

经过一阵子谷歌(对数据库不熟悉),发现之前对数据操作没有完整执行,需要杀掉原来的执行线程。方法如下:

mysql>show processlist;
+----+------+-----------+------+---------+------+-------+------------------+
| Id | User | Host      | db   | Command | Time | State | Info             |
+----+------+-----------+------+---------+------+-------+------------------+
|  7 | root | localhost | yy   | End     |  154 |       | delete .....     |
|  8 | root | localhost | NULL | Query   |    0 | NULL  | show processlist |
+----+------+-----------+------+---------+------+-------+------------------+
2 rows in set (0.00 sec)

 发现id为7的线程是刚才执行的删除语句,已经不再执行了,但是仍然占着表,导致其他删除语句无法执行。

此时,需要杀掉线程。执行如下:

mysql> kill 7;

mysql> show processlist;
+----+------+-----------+------+---------+------+-------+------------------+
| Id | User | Host      | db   | Command | Time | State | Info             |
+----+------+-----------+------+---------+------+-------+------------------+
|  8 | root | localhost | NULL | Query   |    0 | NULL  | show processlist |
+----+------+-----------+------+---------+------+-------+------------------+
1 row in set (0.00 sec)

 此时,可以对日志表进行删除操作了。

就在删除过程中发现用delete删除数据特别慢,就用了一个其他的方式:

1.先将日志表结构和7月份及以后数据备份下来,我使用sql文件

mysql> mysqldump -u root -p dataname --add-drop-table --where="create_time > '2013-07-01' tablename > /home/root/log.sql

 2.删除整个日志表

mysql> drop table table_name;

 3.将第一步备份数据恢复回去

mysql> source /home/root/log.sql

 至此完成数据的删除任务,使用最后的办法只需要几分钟,如果使用delete语句不知道需要多长时间。

-------------------------------------------------留作备忘--------------------------------------------

文中杀掉线程方式引用:http://blog.sina.com.cn/s/blog_56fd58ab0100q61s.html

 

 

 

分享到:
评论

相关推荐

    删除大量数据脚本

    本文介绍了两个针对大量数据删除的SQL脚本。通过合理的设计和实现,这些脚本能够有效地处理重复数据,同时保持系统的稳定性和数据的安全性。在实际应用中,还需要根据具体情况调整脚本,并采取必要的安全措施。希望...

    Oracle表删除大量数据(千万)后查询变慢问题(原因分析)

    Oracle 表删除大量数据后查询变慢问题分析 在 Oracle 数据库中,如果删除了大量数据(千万级别),可能会出现查询变慢的问题。下面我们将分析这个问题的原因,并提供解决方案。 问题的原因主要有两个方面: 1. 表...

    解决Oracle表删除大量数据后查询变慢问题

    Oracle 表删除大量数据后,即使表中只有几行记录,但用select count(*) from table 来查询发觉都不会马上出来,原因是该表的空间大了

    多线程同步大量数据转录的多线程和同步

    标题与描述均提到了“多线程同步大量数据转录”的概念,这涉及到在计算机科学领域中的并发编程技术,特别是如何有效地处理大规模数据集的转录工作。在现代软件开发中,多线程同步机制是优化性能、提高系统吞吐量的...

    大量数据显示处理控件

    控件功能:具有datagrid的编辑功能和msflexgrid的显示功能,主要用于大量数据显示和编辑(包括添加,删除,修改功能) 代码编写:王新良 编写时间:2002-12-5 修改时间:2002-12-18

    MySQL 快速删除大量数据(千万级别)的几种实践方案详解

    连续运行9天以后,删除一天的数据大概需要3个半小时(环境:128G, 32核,4T硬盘),而这是不能接受的。当然如果要整个表删除,毋庸置疑用 TRUNCATE TABLE就好。 最初的方案(因为未预料到删除会如此慢),代码如下...

    netbackup重复数据删除msdp配置文档

    这种技术特别适用于需要处理大量数据的企业级环境中,不仅减少了存储成本,还提升了数据传输速度。本文档将详细介绍如何在NetBackup 7.1及以上版本中配置重复数据删除功能。 #### 前期工作 - **环境描述**:本配置...

    EF批量修改删除数据

    这表明我们将要探讨的是如何通过扩展库EntityFramework-Plus来增强EF的基础功能,特别是针对大量数据进行高效的批量修改和删除操作。EntityFramework-Plus提供了许多EF原生不支持或效率较低的功能,提高了开发效率和...

    基于MD5算法的重复数据删除技术的研究与改进

    ### 基于MD5算法的重复数据删除技术的研究与改进 #### 一、引言 随着信息技术的迅速发展,企业对于数据的需求日益增长。在信息化时代,数据被视为企业的核心资产,不仅对于日常运营至关重要,同时也是企业进行战略...

    SQL的数据操纵功能之三---删除数据

    3. **性能考虑**:在大型数据库中执行删除操作时,应考虑其对系统性能的影响,尤其是在删除大量数据的情况下。 通过以上介绍,我们可以看到SQL中的`DELETE`语句是非常强大且灵活的工具,能够满足各种数据删除需求。...

    易语言超级列表框批量删除

    - 用户交互:在大量数据删除时,为了防止程序无响应,可以考虑添加进度条或者提示信息,让用户知道操作正在进行。 - 数据备份:如果列表框中的数据很重要,可以考虑在执行删除操作前备份,以防误删。 在压缩包内的...

    数据批量删除/同时删除多条数据

    批量删除或同时删除多条数据是数据库管理中的常见需求,特别是在处理大量数据时。这个场景通常出现在数据清理、更新或优化的过程中。以下将详细介绍批量删除这一概念及其在实际应用中的相关知识点。 批量删除是指在...

    数据库删除数据太慢

    ### 数据库删除数据太慢:提高数据删除速度的思路 在数据库管理中,删除操作是一项基本但又极其重要的功能。然而,在处理大量数据时,删除操作可能会变得异常缓慢,这不仅影响了系统的性能,还可能导致用户体验下降...

    国内首家重复数据删除产品测试对比报告.pdf

    - **综合评价**:根据本次测试结果,飞康FDS在重复数据删除能力方面表现出色,尤其适用于需要高效处理大量数据的场景。 - **用户建议**:建议用户在选择重复数据删除产品时,不仅要考虑产品性能指标,还应该综合考量...

    大存储数据检索删除工具

    在IT行业中,大存储数据检索删除工具是一种至关重要的软件应用,尤其对于那些处理大量数据的行业,如监控视频分析和医疗存储。这类工具通常具备高效的数据处理能力,以应对日益增长的数据规模。"大存储数据检索删除...

    DB2删除大数据量表方法.pdf

    这是因为`DELETE`语句不仅会删除数据,还会记录这些操作的日志,这在大数据量的情况下会消耗大量的时间和资源。为了解决这个问题,文中提到了两种高效的方法。 第一种方法是利用`IMPORT`命令配合一个空文件来清空表...

    重复数据删除技术源代码C语言

    本技术在云计算、备份、归档等领域广泛应用,尤其对于处理大量数据的场景,其效果尤为显著。本文将深入探讨使用C语言实现的重复数据删除技术,主要基于提供的1.4.1版本源代码。 1. **基本概念**:重复数据删除是...

    利用SQL语句删除批量数据.rar

    在数据库管理中,有时我们需要对大量数据进行清理或更新,这时使用SQL语句删除批量数据就显得尤为重要。本文将深入探讨如何有效地利用SQL语句来完成这个任务。 首先,我们来了解一下SQL(Structured Query Language...

Global site tag (gtag.js) - Google Analytics