`
hwei_344370758
  • 浏览: 21606 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

删除一张表的重复记录(案例)

 
阅读更多
删除一张表的重复记录(ID是自增唯一主键,重复记录:其他字段都是一样)
(数据量很大,性能要求很高)
表名:T
Id name age
1  louis 20
2  louis 20
3  jimmy 30
4  louis 20
做法一:
Delete from t where id not in (Select min(id) from t Group by name,age);
做法二: delete from t where id in(Select distinct a2.id from t a1,t a2 where a1.id>a2.id and a1.name=a2.name and a1.age=a2.age);
做法三:
delete from t a1 where not exists(select *
from t a2
where a1.id>a2.id and a1.name=a2.name and a1.age=a2.age
);
前提数据量>100,0000
以上三种做法,均可。但是第三种做法的性能最佳。第一种用not in没办法用到索引.第三种方式也不会用到索引
数据量 1000 100000 100,0000
方法一 0.047 3.77 72
方法二 0.286 5.77 65
第二种方式快于第一种方式。
分享到:
评论

相关推荐

    常用mysql语句实例

    这条语句用于删除表`info`中那些在`info_bz`表中没有匹配记录的行。`NOT EXISTS`子句在这里用于检查是否有满足条件的记录存在。如果没有,则删除该行。这是一种有效的数据清洗方法,可以帮助保持数据库的整洁,避免...

    数据库课程设计-医院药品管理系统

    逻辑模型设计则将ER模型转化为关系模型,即表的形式,每个实体和关系对应一张表。最后,物理模型设计考虑数据库的实际存储和性能优化,如表的索引、分区等。 在医院药品管理系统中,可能包含以下核心表: 1. 药品...

    易语言操作数据库教程之EDB教程

    3.EDB 相当于一张表。4.EDB 不支持SQL语句 SQL语句:增 删 改 查(比较复杂点 排序 多表查询 过滤)。3.创建EDB数据库。如果往EDB里面放图片的话。会生成一个EDT格式的数据库存放我们的图片。4.打开数据库。增 删 改 查...

    Mysql数据库学习

    - 结合以上各种数据类型创建一张复杂的表,并设置适当的约束。 - **2.4.8 如何对齐显示我们的数据:** - 使用`AS`关键字和格式化函数如`FORMAT()`来美化输出结果。 #### 三、修改表 **3.1 基本介绍** - 修改表...

    存储过程编写经验和优化措施

    - **表访问**:尽量减少重复访问同一张或多张表,特别是对于大数据量的表,可先将数据提取到临时表中再进行处理。 - **游标使用**:尽量避免使用游标,若必须使用,要避免在游标循环中进行表连接操作。 - **WHERE...

    mysql详细学习笔记

    - 一张表只能有一个主键,但可以有多个唯一键。 #### 修改表时添加约束 - `ALTER TABLE table_name ADD CONSTRAINT constraint_name constraint_definition;` #### 修改时删除约束 - `ALTER TABLE table_name ...

    数据库操作语句大全(sql)

    19、说明:删除重复记录 1),delete from tablename where id not in (select max(id) from tablename group by col1,col2,...) 2),select distinct * into temp from tablename delete from tablename insert into...

    经典SQL语句大全

    19、说明:删除重复记录 1),delete from tablename where id not in (select max(id) from tablename group by col1,col2,...) 2),select distinct * into temp from tablename delete from tablename insert into...

    InnoDB的七种锁

    当两个或多个事务试图同时向同一张表中插入新行时,如果这些行涉及自增列,则可能发生冲突。 **案例说明**: 考虑以下场景: - 数据表`t(id AUTO_INCREMENT, name)`已存在如下数据: - `1, shenjian` - `2, ...

    通道自动化与批处理(与“图像”有关的文档共23张).pptx

    例如,案例中展示了如何利用通道抠取树叶并将其移植到另一张图像中,呈现了前后对比,显示了通道抠图的精度和自然性。 通道与滤镜的结合可以创造独特的图像特效。通过对通道进行编辑,如最大值、最小值、高斯模糊等...

    Hive高级编程

    - **HiveQL 使用 DISTINCT**:用于去除重复记录。例如: ```sql SELECT pageid, COUNT(DISTINCT userid) FROM page_view GROUP BY pageid; ``` 此查询统计每个 `pageid` 下的不同 `userid` 数量。 #### 四、...

    数据库面试题(SQL+ORACLE).

    - **参照完整性**:确保引用完整性,即如果一张表中有对外键的引用,那么这个外键必须在另一张表的主键中存在。 - **用户定义完整性**:根据具体的应用需求设定的约束条件,比如数值范围、格式验证等。 #### 六、...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    oracle 甲骨文 获得最高认证级别的ISO标准安全认证,性能最高, 保持开放平台下的TPC-D和TPC-C的世界记录。但价格不菲 大型企业 db2 IBM DB2在企业级的应用最为广泛, 在全球的500家最大的企业中,几乎85%以上用DB2...

    敏捷软件开发的必要技巧

    - **创建CRC卡**:为每个类制作一张卡片,记录其名称、职责和与其他类的交互。 - **角色扮演**:团队成员扮演不同的类角色,模拟类之间的消息传递,确保设计的合理性和完整性。 ### 第10章 验收测试 #### 验收测试...

    浅谈CAS在分布式ID生成方案上的应用

    具体来说,就是在数据库中创建一张表,用来存储当前的最大ID值,每当需要生成新的ID时,就在该表中插入一条新记录,从而获得一个新的ID值。这种方法的优势在于简单易实现,且生成的ID具有全局唯一性、递增性等特点,...

    c 语言课程设计任务书

    以上三个项目都是C语言课程设计中的经典案例,不仅能够帮助学生掌握C语言的基本语法和编程技巧,还能通过实践项目增强解决问题的能力。通过这些项目的开发,学生将能够更好地理解C语言在实际应用中的强大功能,并为...

    简单PS课程设计

    2. **背景移除**:使用魔棒工具选择并删除建筑物背景,使主体独立。 3. **天空背景替换**:导入另一张云层图片作为新的背景,调整大小和位置。 4. **融合调整**:应用图层样式,如“混合选项”来调整建筑物与云层的...

    《程序天下:JavaScript实例自学手册》光盘源码

    4.5 鼠标放到图片上会显示另外一张图片 4.6 鼠标形状定义大全 4.7 鼠标移入移出时颜色变化 4.8 跟随鼠标的文字 4.9 跟随鼠标的彩色文字 4.10 跟随鼠标的魔法文字 4.11 跟随鼠标的星星 4.12 跟随鼠标的旋转背景 4.13 ...

    Java范例开发大全 (源程序)

     实例16 小九九乘法表 28  实例17 如何列出素数 29  实例18 Java中的递归 31  实例19 男生女生各多少人 32  实例20 求水仙花数 34  实例21 求任意一个正数的阶乘 35  实例22 求n的n次方 35  实例23 ...

Global site tag (gtag.js) - Google Analytics