mysql百万数据查重优化

在mysql数据库中有一张人员信息表,数据量 100万以上,根据姓名、性别、身份证号等基本信息查询出重复的数据。如何能快速查出数据。
图片说明
求教如何优化。

2个回答

可以考虑加个字段mdv,字段是‘所有要验证重复字段加起来’的MD5值之类的
然后给这个字段建立索引
然后select * from t_case_info a where exists(select 1 from t_case_info b where a.mdv=b.mdv and a.id<>b.id)

方案1:
select t.id, t.name, t.ssid from t_case_info t join (
  select id, name, ssid from t_case_info where is_del='0' and reportdate >= '2003-01-01' and reportdate <= '2003-01-31' group by name,ssid having count(1) > 1
) r on t.name = r.name and t.ssid = r.ssid 
where t.is_del='0' and t.reportdate >= '2003-01-01' and t.reportdate <= '2003-01-01';

方案2:
1、创建临时表,把重复的name和ssid存入临时表
CREATE TEMPORARY TABLE r_info
(
  id varchar(32) NOT NULL,
  name varchar(255),
  ssid varchar(25)
  KEY idx(ssid, name)
)ENGINE=MEMORY DEFAULT CHARSET=utf8 ;
2、关联查询
insert into r_info(id, name, ssid) select id, name, ssid from t_case_info where is_del='0' and reportdate >= '2003-01-01' and reportdate <= '2003-01-31' group by name,ssid having count(1) > 1;
select t.id, t.name, t.ssid from t_case_info t join r_info r on t.name = r.name and t.ssid = r.ssid 
where t.is_del='0' and t.reportdate >= '2003-01-01' and t.reportdate <= '2003-01-01';
u014394665
巨蟹糖朵 这种方式也试过,速度很慢,请问您还有别的方式吗?
7 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
大数据查重
大数据去重复/查重 经常会有大量的数据比如100G,要在内存为4G的处理器上进行查重和去重操作。 ConcurrentHashMap 数据量不大的时候可以采用concurrentHashMap来操作。 布隆过滤器 布隆过滤器是一种采用hash法进行查重的工具,它不是简单的做hash操作,而是将数据进行n次hash处理得到n个整数,将一个很长的数组的这n位从0设置为1。下次查找的时候经过同...
单机大数据查重
假设有一个T的文件,按照行存储,其中有且只有两行完全一致,给你一台内存只有128M的电脑,如何能在所有数据中找出两行重复行呢? 首先,我们要确定有方法可以解决这个问题,只要提取每一行,进行逐行比对,假设有n行,最多需要比对[n*(n-1)]/2次,也就是说要将数据IO读取[n*(n-1)]/2次,如此肯定可以找出正确的两行,但是所要消耗的时间成本过高,接下来我们就要将这个方法进行优化。 如果想要节...
数据查重问题
[code=SQL]rnselect distinct rn rn p.ParentId, p.ParentId,p.ParentId,null,b.BabyId,pp.PhoneNumber,b.BirthDay,1,f.CreateDate,GETDATE(),rn null,null,null,null,f.StateCode,f.CityCode,f.DistrictCode,pa.Street,pa.PostCode,p.Email,rn null,null,null,null,null,null,null,b.CurrentMilkId1,b.CurrentMilkId2,0,0,0,0,'EPG',rn @batchid,1,1,1,p.ParentName,b.BabyName,f.FamilyId rn rn from rn rn CTM_Baby b inner join CTM_DataOriginHistory d on b.FamilyId=d.FamilyId rn inner join CTM_Family f on f.FamilyId=d.FamilyId rn inner join CTM_Parent p on p.ParentId = d.ParentIdrn left join CTM_ParentPhone pp on pp.ParentId=d.ParentId rn left join CTM_ParentAddress pa on pa.ParentAddressId=p.PriorityAddressId rn where p.IsPreMember=1 and p.IsPriority=1 and p.ParentId not in rn (select MAMA_ID from OB_RECRUITMENT_ALLDATA) and d.DataOriginTypeId=5rn and p.ParentId=p.ToParentId and b.BabyId=b.ToBabyId and f.FamilyId=f.ToFamilyId and p.ParentStatusId=1rn and f.CityCode in (89,35,122,224,276,277,121,322)--citycode 是f表还是pa表rn and b.InitBornStatus in (2,0)rn and pp.PhoneTypeId=3 and p.CreateDate>'2011-09-01'rn[/code]rnrn我想让这个语句查出来的数据没有重复的(主要是p.Parentid不重复),应该怎么搞啊?
数据查重合并
此教程涉及CloudCC PaaS平台开发的全部技能,是生态开发者开发出成熟可用的生态软件包的需学课程。
大量数据查重
     本来到软工所是为了做作业和看书的,结果,很不务正业的被一个问题吸引了,这个任务是:从文件中读入一系列格式化好的数据,如     int           int              int        int     float     float 90900 1442373573 1486014884 0 0.0125 0.0949473 ...
Mysql 之 100万数量级,查询语句优化
单表sql数据查询对比如图: 1 查询 sql语句优化 ,最有效的方式在于索引 ,建索引的规则? 查询要使用索引最主要的条件是查询条件中需要使用索引关键字, 如果是多列索 引,那么只有查询条件使用了多列关键字最左边的前缀时,才可以使用索引,否则将 不能使用索引 2 哪些情况不会使用索引 a : 索引比全表扫描更慢...
对于百万数据我更新其中的某一条 如何优化
假如现在我有一个表里的数据过百万条,我需要对其中的某一条进行更新,请问有什么办法可以优化吗?rn(同时大家也可以谈谈对大量数据是如何优化的)
线性表-数据查重算法
线性表-数据查重 定义 基本思想 结构体 无序线性表查重 有序线性表查重 1.定义线性表是计算机最常见的一种数据结构.记录文件,数组,操作系统的进程队列等都是这种数据结构,它们或者用顺序存储结构,或者用链存储结构.下面介绍都是基于线性表的应用 数据查重是查看一个线性表中数据元素或其组成的数据项是否重复存储为多个结点.所线性表的存储结构不同,查重算法也不同;查重的目的不同,算法也不一样.就查重而言
求教数据查重问题
SQL SERVER 中INSERT、UPDATE 如何解决数据查重问题?
【求助】和数据查重有关。
关于物料管理的系统,由于物料没有唯一性的标识,所以客户设置了20多个字段来描述物料。rn因此,为了避免数据冗余,客户要求在数据导入以及录入,要根据20多个字段计算表内是否有和输入的信息相似度较高的数据,有的话则提示用户,要求其确认是否同一物资。rn如果是的话,则只进行数量上的累计,不产生新的一条物料信息;如果不是,则产生一条新的物料信息。rn应该怎么做,如何计算相似度?
还是数据查重问题
数据表要求不得有重复记录存在,ASP.NET编程中在发出insert或update后,如何获得有重复数据存在的信息?
TXT文件数据查重去重工具
TXT文件数据查重去重工具是采用微软C#语言开发,使用多线程对数据进行查重去重处理,处理100万的数据不到1.5秒,软件界面简洁美观,操作简单,软件大小只有70KB,软件提示友好,比如在操作日志上会实时显示正在处理那个文件,还会将重复的数据显示在重复数据列表中,同时软件还支持一次处理一个或多个文件,对文件的大小没有限制,软件会自动按照原来的文件名在程序同目录下生成没有重复数据的文件,当然最关键的还是免费、免费、永久免费,没有任何套路。
mysql 200万数据查询优化
mysql 200万数据查询优化 最近在做java爬虫项目,用的mysql数据库,数据量少的时候没啥问题,但数据以上百万级别,某些查询巨慢。 比如 1.查询数据总数     select count(*) from tableName ;   我测试的极限是15万数据,一过15万数据,基本是上十几秒才能出结果 。     优化1: SELECT COUNT(id) FROM tabl
+++++=算法讨论=+++++双表间数据查重
rnrnrn有表F1和F2,数据量庞大,两表中有相同的字段field1 rn如何用最优化的算法查找出F1中有多少在F2中重复的纪录,并纪录 F1中的ID
大数据查重去重方案及性能优化
最近做针对百万级别的数据的去重工作,现抽空写下笔记。 做这个去重,是基于前同事的基础上做改造,原来是用的simHash算法做文本相似计算,上网查了下,simHash算法是相对来说,在大数据领域比较受欢迎的查重算法,话不多说,来一步步说下我的设计之路。 一、先简单介绍下simHash. 传统的Hash算法只负责将原始内容尽量均匀随机地映射为一个签名值,原理上仅相当于伪随机数产生算法。传统的ha...
MySql数据库:数据查重、去重的实现
MySql数据库记录查重去重
数据查重去重,数据匹配过程
数据在不断使用和变化的过程中,如果不维护,数据质量会不断下降(数据重复,格式不一致问题)。-> 数据清理,数据匹配,数据查重
数据查重,不连续数据
表A中有如下字段:id(number),code(varchar),type(number),start_tm(varchar),end_tm(varchar),start_week(number),end_week(number).rncode为代码,type为类型(只有1,和2),start_tm为开始时间从0000-2400,end_tm为结束时间从0000-2400,start_week为开始星期从1-7,end_week为结束星期从1-7.rn如(1,'AAAAA',1,'0000','2400',1,7)表示代码为'AAAAA'商家当类型为1时的有效时间是从星期一的'0000'到'2400'也就是从零点到24点,到星期日的'0000'到'2400'也就是从零点到24点;rn现在要求查出表中同一商家有效时间重叠‘交叉的记录。类型不要求相同rn有这几条记录rn(2,'AAAAA',1,'0000','2000',1,7)与(3,'AAAAA',2,'1800','0000',1,7)时间交叉rn(6,'CCCCC',1,'0000','2400',2,7)与(7,'CCCCC',2,'0000','2400',1,5)星期交叉rn(8,'DDDDD',1,'0800','2400',2,7)与(9,'DDDDD',2,'2200','0800',1,5)时间和星期都交叉rn(4,'BBBBB',1,'0000','2400',1,7)与(5,'BBBBB',2,'0800','2000',1,7)时间重叠rn(10,'EEEEE',1,'0000','2400',1,7)与(11,'EEEEE',2,'0000','2400',2,5)星期重叠rn(12,'GGGGG',1,'0800','2200',1,7)与(5,'GGGGG',2,'2100','0800',2,5)时间星期重叠rn另外还要查出不连续的数据如给'AAAAA'配置了星期一到星期三 和 星期六到星期日 而没有配星期四和星期五也要查出来rn同样时间也是一样不能有空缺,不连续。rnrnrn
数据查重和输入界面的初始化
<p>rn 通过课堂上一个一个的实战例子,演示DelphiXE10的用法,最后通过一个完整的通讯录程序,让学员初步掌握软件开发的全部流程rn</p>rn<p>rn <br />rn</p>rn<p>rn 让零基础学员快速入门Delphi编程,快速掌握Delphi的使用方法,并能够制作出自己的软件来。为同学们下一步的提高打下坚实的基础。rn</p>rn<br />
百钱买百鸡之数学优化
今有鸡翁一,值钱伍;鸡母一,值钱三;鸡鶵三,值钱一。凡百钱买鸡百只,问鸡翁、母、鶵各几何?答曰:鸡翁四,值钱二十;鸡母十八,值钱五十四;鸡鶵七十八,值钱二十六。又答:鸡翁八,值钱四十;鸡 母十一,值钱三十三,鸡鶵八十一,值钱二十七。又答:鸡翁十二,值钱六十;鸡母四、值钱十二;鸡鶵八十 四,值钱二十八。
算法与数据结构——算法题 92:大数据查重(腾讯笔试题) ? 待解决
题目:有一千万条短信,有重复,以文本文件的形式保存,一行一条,有重复。请用5分钟时间,找出重复出现最多的前10条。拓展题目:有10亿个浮点数,请找出其中最大的10000个。思路:
数据库剔重的优化!!!
rnrn我现在写的这个程序在每条记录入库时要求查找数据库,进行比较,防止重单rn入库。rn请问,为了提高效率,我应该从哪些方面入手呢?rn谢谢了!各位大侠!rn
java导入Excel中数据查重的方法
今天查数据库数据的时候发现一个问题,明明添加了数据库查重的方法,如果导入文件中存在和数据库相同值的时候会提示并拒绝提交,但数据库还是出现了重复字段,一开始有点纳闷,后来发现原来是因为一个excel文件中存在多条重复数据的时候,会全部导进数据库,于是又加了一段excel文件数据查重的方法Map resultMap = new HashMap(); for(int i = 0; i < nameLis
百钱百鸡问题:搜索空间的优化与枚举,
<p>rn 算法设计与分析是考察程序开发人员技术水平的重要内容之一,并且在企业面试、日常工作、都占有重要的地位。然而,不同与数据结构,初步进入软件开发行业的学员往往对于算法存在敬畏和畏怯的心理。为了帮助广大学员朋友切实提升程序开发技巧,积累学习信心,克服畏难情绪,丁宋涛和夏曹俊老师共同精心设计了本门课程。丁宋涛老师常年服务于普通类本科院校的教育教学,同时拥有蓝桥杯全国二等奖、省赛一等奖的指导经验,拥有专业性的教学指导经验;同时,本课程从北京大学onlinejudge入手,从浅入深的讲解基本算法的核心思想;再结合leetcode企业级真题库为广大程序员顺利求职加薪提供助力。leetcode是企业级笔试面试的专业题库,是广大求职人员都需要打磨、参考的宝贵资料。为了能脚踏实地的服务最广大的程序员朋友,本课程将以基础的形式为广大求职人员提供完备的参考手册,为提升薪资、获取高阶的工作机会提供切实有效的帮助。rn</p>rn<p>rn <img src="https://img-bss.csdn.net/201906120922216522.png" alt="" /> rn</p>rn<p>rn <img src="https://img-bss.csdn.net/201906120921587805.png" alt="" /> rn</p>rn<p>rn <img src="https://img-bss.csdn.net/201906120921242101.png" alt="" /> rn</p>
"百钱买百鸡"问题(for循环的使用及其优化)
1.题目描述:3文钱可以买一只公鸡,2文钱可以买一只母鸡,1文钱可以买3只小鸡。用100文钱买一百只鸡,那么各有公鸡,母鸡,小鸡多少只? 2.思路分析:可以使用穷举法,即使用for循环把所有可能的方法都遍历一遍,再结合题设使用if条件滤掉只剩下符合条件的方案。一共3个变量,可以使用双重for循环控制公鸡和母鸡的数量,小鸡的数量自然可以得知 3.代码优化部分: (a)为了减少循环次数,提高...
三重循环与程序的优化——百钱买百鸡
<p>n 这是一套符合小学生认知特点的C++编程入门视频教程。以程序为中心,适当地弱化语法,注重算法。利用流程图清思路,激发学习兴趣,培养计算思维。n</p>n<p>n 适用人群:小学四年级以上的中小学孩子<br />n          C++初学者n</p>n<p>n <br /></p>n<p>n 本课程是基于小学生的认知发展水平开展教学的,浅显易懂。用编程的方式实现小学生日常生活和学习中遇到的例子,能激发孩子学习编程的兴趣。<br /><br />n学完本课程后,孩子能编写简单的代码,用程序解决生活及学习中遇到的一些题目,也看懂一般的C++代码,学会编程的方法去思考和解决问题。<br /><br />n本课程共83节课时,每节课十几分钟,每节课都有编程实例和课后练习,在讲新的课时之前,老师都会把上节课留的练习进行分析讲解。购买本视频教程后,赠送的资料包括课程配套教学文档和源码,入群有老师提供在线解答学习中遇到的问题。n</p>
w7系统重、优化与技巧
V0.22 如何减小成本?如何延长周期 提前下载新系统的驱动 重装系统 系统优化&常用技巧 常用技巧
【MySql】windows下重置数据库密码
忘记了数据库的密码…找了方法更改,重置过程整理如下: 重置密码之前,需要先将mysql服务停掉 方式有二:任务管理器,win+R输入net stop mysql 在命令提示符窗口中,cd找到mysql安装目录的bin目录 在bin目录下输入 mysqld --skip-grant-tables 以便跳过权限检查启动mysql 注,如果配置了my.ini文件,则需要将其引入:mysql...
mysql查重处理问题
mysql查重处理的效率问题
mysql重连接
想请教一个问题:rn为什么我每次执行一个sql(时间间隔不超过10秒钟)语句的时候都会显示数据库断开需要重新连接呢?如:rnrn mysql> show databases;rnerror 2006 : MySQL server has gone awayrnno connection. Trying to reconnect...rnconnection id : 9rncurrent database : mysqlrnrn+---------------------------+rn| DataBase |rn+---------------------------+rn| information_schema |rnrn...............rnrn请教高手帮忙。。。。
mysql查重
select * from t_device where v_id='361' and mac in (select mac from t_device where v_id='361' group by mac having count(mac)&gt;1);
mysql查重语句
整理数据的时候经常用到: select count(*),serie_code from serie where from_type='ycw' group by serie_code having count(*) >1;
SQL优化(重分求)
请问高水位標志的使用細節和用法.
mysql 查重
mysql  查重 表内容: SELECT a.name ,COUNT(*) from name_info a group by name having COUNT(*) > 1;
mysql判重插入
表结构: CREATE TABLE `test` (   `id` int(11) NOT NULL AUTO_INCREMENT,   `name` varchar(255) CHARACTER SET latin1 DEFAULT NULL,   `code` varchar(10) CHARACTER SET latin1 DEFAULT NULL,   `quota_owner` var...
物联网重编程的存储优化
详细介绍了面向物理网重编程的存储优化方法,并仿真验证了可行
mysql 可重复读。
一、可重复读 我们先看看现象,再分析原理。我的mysql版本是5.5。 下面是一张表,只有一条数据,并且我开启了事物 此时,另一个事物将record加1,因此我在开启一个命令行客户端,执行下面的命令: 成功加1之后,实际上,数据库中record肯定是2。 然后回到之前的客户端,再查一次: 没毛病,record还是1,果然是可重复读。有些人以为mysql的可重复读是通过行锁实...
mysql查重笔记
select count(*) as count, mobile from user group by mobile having count &gt; 1;
React(六):重渲染优化
由上一篇文章《React(五):React在什么情况下会render》可知,除初始化组件渲染外,组件会在以下两种情况下发生重渲染: 1、当调用setState()函数时,组件会发生重渲染,即使组件的state未发生改变; 2、当父组件发生重渲染时,其全部子组件都会重渲染。 虽然React的重渲染机制是严谨的,但是也是非常耗时的,我们有两种方式来阻止组件不必要的重渲染。 1、shouldCo...
n重循环的优化(二分搜索)
这篇内容不多,质量不大高 循环在针对一些问题时,的确是很快能想到的方法,一般也是比较暴力的一个个的尝试,而这不就是计算机擅长的事吗?不过有时规模非常大时,计算机也需要一些时间去计算,对于一些密码或者以指数规模增长的问题(或者NP完全问题),只是用循环一个个去试,有时并不一定能得到想要的结果,反而看起来还笨一些 那么有两种选择: 一是对现有的循环进行优化,降低它的时间复杂度
相关热词 c++和c#哪个就业率高 c# 批量动态创建控件 c# 模块和程序集的区别 c# gmap 截图 c# 验证码图片生成类 c# 再次尝试 连接失败 c#开发编写规范 c# 压缩图片好麻烦 c#计算数组中的平均值 c#获取路由参数