MySQL大数据量表中删除重复记录
来源:互联网 发布:新软件发布 编辑:程序博客网 时间:2024/06/05 06:09
原文地址:http://blog.skyx.in/archives/135/
最近工作中需要抓取大量新闻,抓取的数据中由于一些原因存在一些重复数据,而整个数据表的记录数接近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);
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`;
不过我这篇文章中的方法只适用于记录只重复了一次的情况,不过稍微改改就可以删除重复次数较多的记录,这里就不在赘述。
0 0
- MySQL大数据量表中删除重复记录
- Oracle中删除大数据量表
- 大数据量表删除插入
- MySQL中删除重复记录
- MYSQL中快速高效删除大数据表中的重复数据
- mysql 中删除重复数据
- Mysql大数据表删除重复数据
- DB2 删除大数据量表方法
- DB2 删除大数据量表方法
- MYSQL中删除重复记录的方法
- MYSQL中删除重复记录的方法
- MYSQL中删除重复记录的方法
- MYSQL 删除同一表中重复记录
- Mysql中删除重复记录的方法
- MYSQL中删除重复记录的方法
- mysql 删除表中重复记录
- mysql 删除数据库表中重复记录
- MYSQL中删除重复记录的方法
- linq和几个重要的C#语言特性
- Ruby第一天作业
- (一)webView加载url
- mysql学习笔记(六):JDBC详解
- pdf转换成txt的操作方法分享
- MySQL大数据量表中删除重复记录
- C++11新特性
- Linux下获取硬盘相关信息
- java设计模式----建造者模式
- HDU 1325 Is It A Tree?(并查集简单题)
- vector的clear操作的内部过程
- 二叉树平衡检查(递归)
- Android学习笔记:Andorid网络请求框架Volley的使用(上)
- 信号--SIGCLD语义