在mysql数据库中有一张人员信息表,数据量 100万以上,根据姓名、性别、身份证号等基本信息查询出重复的数据。如何能快速查出数据。
求教如何优化。
mysql百万数据查重优化
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- Jess鼎 2019-02-21 00:42关注
方案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';
解决 2无用
悬赏问题
- ¥15 vue3加ant-design-vue无法渲染出页面
- ¥15 matlab(相关搜索:紧聚焦)
- ¥15 基于51单片机的厨房煤气泄露检测报警系统设计
- ¥15 路易威登官网 里边的参数逆向
- ¥15 Arduino无法同时连接多个hx711模块,如何解决?
- ¥50 需求一个up主付费课程
- ¥20 模型在y分布之外的数据上预测能力不好如何解决
- ¥15 processing提取音乐节奏
- ¥15 gg加速器加速游戏时,提示不是x86架构
- ¥15 python按要求编写程序