请选择 进入手机版 | 继续访问电脑版

雨滴科技技术论坛

 找回密码
 立即注册
查看: 126|回复: 0

sql 查找重复记录

[复制链接]

261

主题

1485

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
16407
扫一扫,手机访问本帖
发表于 2018-9-28 11:14:27 | 显示全部楼层 |阅读模式
在一个业务层不允许有重复记录的表中发现有重复记录,想知道到底有多少重复的记录。
如果写程序查找,需要对每条记录查询数据库,想着用sql查找是不是可以更快一些。

下面一条sql语句就可以实现需要的查询:
mysql> SELECT * FROM store_applog a WHERE ((SELECT COUNT(*) FROM store_applog WHERE sn = a.sn and packageName = a.packageName and releaseKeyHash = a.releaseKeyHash) > 1) ORDER BY sn DESC;

34 rows in set (2 min 20.82 sec)
但是结果也并不快,不到2w条记录,耗时近2分半钟,查询到34条重复记录。这么长的时间,难怪在phpmyadmin中查询都不成功,服务器返回504超时错误。
这也说明数据库也没有更好的算法做这种查询,只有逐条去搜索。

这些重复记录只有在创建时间上有几毫秒的不同,看来数据是程序异常插入数据库。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

在线客服
在线咨询
咨询热线
0755-26787502-8006/8016
扫一扫二维码
直接访问本站

QQ|Archiver|手机版|小黑屋|雨滴科技  

GMT+8, 2018-12-19 21:20 , Processed in 0.060247 second(s), 11 queries , Gzip On, Memcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表