mysql 10万条数据如何查重

时间:2022-05-13 23:32:59
mysql 5.5,10万多条数据,根据身份证号码查重(个别身份证可能是空的),用下面的语句是否有问题,老半天没有返回结果,还是有另外的方法?谢谢
SELECT user_id,user_name,user_id_number FROM user_info WHERE  user_id_number<>'' AND user_id_number IN(SELECT user_id_number FROM user_info WHERE  user_id_number<>'' GROUP BY user_id_number HAVING(COUNT(*))>1 ) 
ORDER BY user_id_number

5 个解决方案

#1


引用 楼主 steven7677 的回复:
mysql 5.5,10万多条数据,根据身份证号码查重(个别身份证可能是空的),用下面的语句是否有问题,老半天没有返回结果,还是有另外的方法?谢谢
SELECT user_id,user_name,user_id_number FROM user_info WHERE  user_id_number<>'' AND user_id_number IN(SELECT user_id_number FROM user_info WHERE  user_id_number<>'' GROUP BY user_id_number HAVING(COUNT(*))>1 ) 
ORDER BY user_id_number


#查询重复的user_id_number
SELECT
a.user_id,
a.user_name,
a.user_id_number
FROM
user_info a
INNER JOIN (
SELECT
user_id_number
FROM
user_info
WHERE
user_id_number <> ''
GROUP BY
user_id_number
HAVING
COUNT(1) > 1
) b ON a.user_id_number = b.user_id_number
ORDER BY
user_id_number

别用in,改用inner应该会快点

#2


嵌套查询应该不会那么慢 ,按你语法执行需要多久,
前段时间我本用这样的语法查4万多条数据的重复几秒钟就出结果了

#3


没有索引吧? explain 看下执行计划

#4


又是查询语句group ,order by ,统计语句,是比较慢的, 你用 explain 看看执行计划,有没有建立索引? 

欢迎关注个人微信公众号《andyqian》, 最近更新一系列MySQL性能优化文章,期待你的关注!

#5


重建索引后速度还行了, in改成 exists 效率也好多了,感谢楼上各位

#1


引用 楼主 steven7677 的回复:
mysql 5.5,10万多条数据,根据身份证号码查重(个别身份证可能是空的),用下面的语句是否有问题,老半天没有返回结果,还是有另外的方法?谢谢
SELECT user_id,user_name,user_id_number FROM user_info WHERE  user_id_number<>'' AND user_id_number IN(SELECT user_id_number FROM user_info WHERE  user_id_number<>'' GROUP BY user_id_number HAVING(COUNT(*))>1 ) 
ORDER BY user_id_number


#查询重复的user_id_number
SELECT
a.user_id,
a.user_name,
a.user_id_number
FROM
user_info a
INNER JOIN (
SELECT
user_id_number
FROM
user_info
WHERE
user_id_number <> ''
GROUP BY
user_id_number
HAVING
COUNT(1) > 1
) b ON a.user_id_number = b.user_id_number
ORDER BY
user_id_number

别用in,改用inner应该会快点

#2


嵌套查询应该不会那么慢 ,按你语法执行需要多久,
前段时间我本用这样的语法查4万多条数据的重复几秒钟就出结果了

#3


没有索引吧? explain 看下执行计划

#4


又是查询语句group ,order by ,统计语句,是比较慢的, 你用 explain 看看执行计划,有没有建立索引? 

欢迎关注个人微信公众号《andyqian》, 最近更新一系列MySQL性能优化文章,期待你的关注!

#5


重建索引后速度还行了, in改成 exists 效率也好多了,感谢楼上各位