巨蟹糖朵 2019-02-20 14:42 采纳率: 0%
浏览 1262

mysql百万数据查重优化

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

  • 写回答

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';
    
    评论

报告相同问题?

悬赏问题

  • ¥15 vue3加ant-design-vue无法渲染出页面
  • ¥15 matlab(相关搜索:紧聚焦)
  • ¥15 基于51单片机的厨房煤气泄露检测报警系统设计
  • ¥15 路易威登官网 里边的参数逆向
  • ¥15 Arduino无法同时连接多个hx711模块,如何解决?
  • ¥50 需求一个up主付费课程
  • ¥20 模型在y分布之外的数据上预测能力不好如何解决
  • ¥15 processing提取音乐节奏
  • ¥15 gg加速器加速游戏时,提示不是x86架构
  • ¥15 python按要求编写程序