首页新闻找找看学习计划

Mysql 海量数据(最少几百万),重复数据处理!(豆豆倾囊相送)

0
悬赏园豆:100 [已关闭问题] 关闭于 2012-11-06 13:38

如题,数据表中有重复数据,大虾们有没有高效的处理方法?  具体问题:从海量重复数据中获取第一条(或者最后一条)。

目前的解决方法:

      select 列名 from 表名 where id in (select min(id) as id from 表名...),效率及其低下!!

     由于种种原因, 创建临时表的方法暂时不考虑。请各位大虾各抒己见~~

[Stephen-kzx]的主页 [Stephen-kzx] | 菜鸟二级 | 园豆:366
提问于:2012-11-02 18:14
< >
分享
所有回答(4)
0

你原来用的SQL没贴完,麻烦贴完整看看

I,Robot | 园豆:9461 (大侠五级) | 2012-11-03 00:53

具体格式就如上我问题中的sql语句, 后面省略号就是group by分组的内容。

支持(0) 反对(0) [Stephen-kzx] | 园豆:366 (菜鸟二级) | 2012-11-03 11:54
0

select id from 表名 group by 重复列 having count(重复列)>1 //查出重复的信息

之后我就不知道怎么做了..mysql不支持delect 表名 where id in(select id from 表名 group by 重复列 having count(重复列)>1)这样的语句..我也不知道为什么..反正查出重复的你再想办法删吧

Poiuyt_cyc | 园豆:24 (初学一级) | 2012-11-03 09:21

你第一句脚本,我之前试过,效率一样很低。而且重复数据还不能删除!  需求有需要获取重复数据的第一条,和最后一条进行分析。 谢谢你的回答。

支持(0) 反对(0) [Stephen-kzx] | 园豆:366 (菜鸟二级) | 2012-11-05 14:56
0

   select top 1  * FROM (select DISTinct 列名 from 表名 order by id) AS tbl

sym_cn | 园豆:798 (小虾三级) | 2012-11-04 22:09
0

看来没有来围观了, 自己写了个联查,讲究用下吧 。不过20多W的数据处理速度还不错~~  基本语法: select 列名 from table1 a,(select max/min(id) from table1 group by 列)  b where a.id = b.id and...等等。这个效率比 “in” 高好多倍。目前我只有这种方法了, 大家如果有更好的方法处理海量数据,请不吝赐教.. 谢谢

[Stephen-kzx] | 园豆:366 (菜鸟二级) | 2012-11-06 13:37
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册