MySQL大数据量表中删除重复记录

最近工作中需要抓取大量新闻,抓取的数据中由于一些原因存在一些重复数据,而整个数据表的记录数接近10万条,大小接近1个G,又在我自己的渣渣本本上,查询速度十分不理想,想要完成一个最基本的查询都很困难。在看了一些相关资料后终于找到解决方法,分享给大家参考。

首先说一下新闻表的大概结构,主要是包含id、title、content等字段,其中title字段使用较为频繁,并且需要用该字段判断重复记录,所以我们先给title字段添加索引。添加索引后我们可以使用以下语句来很快地查询出哪些title是重复的:

SELECT `title` FROM `info` GROUP BY `title` HAVING COUNT( `title` ) >1

但如果要一次查出重复字段的id的话就需要用到子查询了,可是子查询的效率很低,明显是不合适的,所以我们可以先建一个临时表:

CREATE TABLE `tmptable` AS (SELECT `title` FROM `info` GROUP BY `title` HAVING COUNT( `title` ) >1);

有了重复字段的标题接下来就可以查出重复字段的id了,我这里为了方便又建了一个临时表:

CREATE TABLE `idtable` AS ( SELECT min(a.`id`) AS id, a.`title` FROM `info` a, `tmptable` t WHERE a.`title` = t.`title` GROUP BY a.`title`);

这样删除重复字段就很容易了:

DELETE a FROM `info` a,`idtable` t WHERE a.`id` = t.`id`;

不过我这篇文章中的方法只适用于记录只重复了一次的情况,不过稍微改改就可以删除重复次数较多的记录.

来源:https://blog.skyx.in/archives/135/

我自己改成这样:

CREATE TABLE `idtable` AS (SELECT `title`,min(id) AS id FROM `info` GROUP BY `title` HAVING COUNT( `title` ) >1)

备注:在删除重复多条的情况下,尽量避免全表搜索,比如!=或者order by等等。

mysql scrapy 重复数据_MySQL大数据量表中删除重复记录相关推荐

  1. MSSQL如何在没有主键的表中删除重复数据

    MSSQL如何在没有主键的表中删除重复数据 原文:MSSQL如何在没有主键的表中删除重复数据 为了对重复数据进行实验,下面建一个设计不太好(没有主键)表并插入了一些重复数据: create datab ...

  2. 温故知新MySQL--如何在MySQL表中删除重复行

    2019独角兽企业重金招聘Python工程师标准>>> 如何在MySQL表中删除重复行 在实际应用中,会有需要删除重复数据的场景.这里简单介绍下如何删除重复的数据 1. 准备数据 C ...

  3. sql删除表中重复记录_SQL从SQL表中删除重复行的不同方法

    sql删除表中重复记录 This article explains the process of performing SQL delete activity for duplicate rows f ...

  4. mysql 如何删除重复的行_如何从mysql中的表中删除重复的行

    我需要从 mysql中删除表中的重复记录. 所以我有一个表名"employee"字段是empid,empname,empssn 为了获得重复记录我写了一个查询 SELECT COU ...

  5. linux过滤重复字符串,linux – 从制表符分隔文件中删除重复的单词/字符串

    我想使用Linux命令从大的制表符分隔文件中删除重复的单词/字符串. names john, cnn, mac, tommy, mac, patrick, ngc, discovery, john, ...

  6. python从后面删除重复项_如何从Python列表中删除重复项

    如何从Python列表中删除重复项 了解如何从Python中的List中删除重复项技巧. 实例 从列表中删除任何重复项: mylist = ["a", "b", ...

  7. Excel表中删除重复项的详细操作

    1,选中自己要删除重复项的区域, 2.点击工具栏  ->数据-->删除重复项. 3.此时会弹出对话框,选择""扩展选定区域"". 4.此时会弹出一个 ...

  8. mysql取出另外一张表的数据_mysql从一张表中取出数据插入到另一张表

    最近有这样一个需求,原来的订单表wp_order设计不合理,原来的订单表没有订单详表,只有一张主表.现在是要重构订单表,分为订单主表wp_order_master和订单详表wp_order_detai ...

  9. python数据透视表计数去除重复_如何从pandas数据透视表中删除重复值?

    因此,我试图将excel的一组指令复制到python中.问题是我对excel和正在发生的事情知之甚少.在 我有一个数据帧:no. name corrected no. corrected name 0 ...

最新文章

  1. mlxtend对sklearn进行扩展
  2. 上周热点回顾(12.18-12.24)
  3. RabbitMQ指南(上)
  4. 使用jackson转换类型时报Unrecognized field
  5. hdu 1116 欧拉路
  6. Kinect+OpenNI+OpenCV使用
  7. registerModulePath
  8. SMS动态查询部署安装XPSP3补丁
  9. linux查看文件第三行,学习linux第三课!新手必须掌握的linux命令
  10. [转]Hspice和Spice Explorer许可文件设置时环境变量FLEXLM_BATCH = 1的一些现象
  11. Linux下如何彻底删除用户
  12. 德普测试仪EOL软件,德普电气 E系列动力电池充放电测试设备
  13. NetCDF数据处理
  14. Invalid value for option“watch“:expected anObject,but got Function.
  15. getCause()、e.getMessage()产生的结果
  16. 计算机Excel删除和清除,电脑EXCEL表格一次删除所有空行的两种方法
  17. 基于OpenCV的刷脸考勤&人脸校验&用户管理系统(源码&教程)
  18. 6个高效办公的Excel小技巧,学会让你高效办公
  19. 常用的GNOME Shell 扩展
  20. 高中生计算机类特长怎么写,高中生个人特长自我评价范文(通用5篇)

热门文章

  1. python在哪个城市工资高_专硕好还是学硕好?哪个更好就业工资高?
  2. 窦学计算机基础期末考试,关于新生开学考计算机基础
  3. 多线程循环输出abcc++_C ++循环| 查找输出程序| 套装2
  4. java valueof_Java Short类valueOf()方法及示例
  5. c# 命名空间命名规范_C#命名空间能力问题和解答 套装2
  6. 后台设计中容易被忽略的坑
  7. 【openMV与机器视觉】四旋翼飞行控制背景下的PID控制与摄像头算法简介
  8. 第三四五章(PTA复习)
  9. Python读写ini文件的封装类
  10. 配置babel_Babel 7 下配置 TypeScript 支持