遇到如题的这么一个场景:需要在MySQL的一张innodb引擎的表(tableA)上添加一个唯一索引(idx_col1_u)。但是表中已经有大量重复数据,对于每个key(col1),有的重复2行,有的重复N行。

此时,做数据的手工清理,或者SQL处理无疑是非常耗时的。

1. Alter ignore table come to help

印象中MySQL有一个独有的 alter ignore add unique index的语法。

语法如下:

ALTER [ONLINE | OFFLINE] [IGNORE] TABLE tbl_name

行为类似于insert ignore,即遇到冲突的unique数据则直接抛弃而不报错。对于加唯一索引的情况来说就是建一张空表,然后加上唯一索引,将老数据用insert ignore语法插入到新表中,遇到冲突则抛弃数据。

IGNORE is a MySQL extension to standard SQL. It controls how ALTER TABLE works if there are duplicates on unique keys in the new table or if warnings occur when strict mode is enabled. If IGNORE is not specified, the copy is aborted and rolled back if duplicate-key errors occur. If IGNORE is specified, only the first row is used of rows with duplicates on a unique key. The other conflicting rows are deleted. Incorrect values are truncated to the

mysql大量重复值建立索引_对于有大量重复数据的表添加唯一索引相关推荐

  1. 对于有大量重复数据的表添加唯一索引

    遇到如题的这么一个场景:需要在MySQL的一张innodb引擎的表(tableA)上添加一个唯一索引(idx_col1_u).但是表中已经有大量重复数据,对于每个key(col1),有的重复2行,有的 ...

  2. mysql 添加唯一索引_浅谈Mysql索引

    文章原创于公众号:程序猿周先森.本平台不定时更新,喜欢我的文章,欢迎关注我的微信公众号. 我们都知道,数据库索引可以帮助我们更加快速的找出符合的数据,但是如果不使用索引,Mysql则会从第一条开始查询 ...

  3. mysql联合唯一索引可以有多个吗_mysql可以设置联合唯一索引吗?

    mysql可以设置联合唯一索引,方法:使用"Alter table 表名 add UNIQUE index 索引名 (字段1,字段2)"语句来设置,它会删除重复的记录,保留一条,然 ...

  4. 建立“图书_读者”数据库及如下 3 个表,并输入实验数据,用 SQL 语句实现如下五个查询(opengauss)

    建立"图书_读者"数据库及如下 3 个表,并输入实验数据,用 SQL 语句实现如下五个查询(opengauss) 题目所涉及的表如下 注:使用opengauss与HeidiSQL: ...

  5. excel如何筛选一列数据的重复值,并找到其他列的对应数据

    excel如何筛选一列数据的重复值,并找到其他列的对应数据.就会用到excel的高级筛选功能.如下: 经过筛选,就得到我们想要的结果了.

  6. oracle主键 唯一索引的区别,Oracle 主键、唯一键与唯一索引的区别

    一般,我们看到术语"索引"和"键"交换使用,但实际上这两个是不同的.索引是存储在数据库中的一个物理结构,键纯粹是一个逻辑概念.键代表创建来实施业务规则的完整性约 ...

  7. pandas使用iloc函数基于dataframe数据列的索引抽取单列或者多列数据、其中多列索引需要嵌入在列表方括号[]中、或使用:符号形成起始和终止范围索引

    pandas使用iloc函数基于dataframe数据列的索引抽取单列或者多列数据.其中多列索引需要嵌入在列表方括号[]中.或使用:符号形成起始和终止范围索引 目录

  8. 如何给mysql表添加百万条数据_给mysql一百万条数据的表添加索引

    直接alter table add index 添加索引,执行一个小时没反应,并且会导致锁表:故放弃该办法,最终解决办法如下: 一.打开mysql 命令行客户端 这里我们那可以看到导出的数据文件所存放 ...

  9. mysql 循环取值 重复循环_mysql在for循环中插入数据重复问题

    html页面发送请求到php,然后php执行for循环插入多条数据,发现偶尔会有部分数据重复 场景 抓取网上图片保存,因此执行时间挺长,但是设置过,不至于超时 for循环一次,下载图片,select判 ...

最新文章

  1. QT 中 界面中消息的停留时间解决方案 以及 label 中字体大小和换行设置
  2. 面试简单整理之spring、spring mvc
  3. python学习路线-Python学习路线图(2020年最新版)
  4. Markdown语法记录
  5. codeblocks如何watch指针
  6. HAProxy + Keepalived + Flume 构建高性能高可用分布式日志系统
  7. c#队列取值_在队列的开头获取对象– C#中的窥视操作
  8. 做梦都在想的游戏设备
  9. Python用户交互
  10. 探索JavaScript中Null和Undefined的深渊
  11. 多媒体计算机教室的构成,几种常见的学习环境--多媒体综合教室的构成及其教学功能...
  12. 行程匹配的算法python_节约里程算法的python实现
  13. 条件欧几里得聚类实验数据集Statues_4.pcd下载
  14. Android中的三级缓存机制
  15. 此操作系统不支持.netframework4.7.1
  16. java 反编译软件 推荐
  17. win10服务器修改远程密码,技术员解惑win10系统远程桌面保存密码后无法修改的设置方法...
  18. 电脑BIOS密码的设置与修改方法
  19. Workbook对象的方法总结(二)
  20. 爬虫入门经典(十) | 一文带你快速爬取网易云音乐

热门文章

  1. mysql的分页查询
  2. leetcode 461. 汉明距离(Java版)
  3. 没有 root 权限如何使用 pip?How to install python modules without root access?
  4. 【Redis】CentOS7下redis的安装+supervisor管理+允许远程访问+测试部署效果
  5. Python文件操作中的a,a+,w,w+,rb+,rw+,ra+几种方式的区别
  6. leetcode 66. 加一(C语言)
  7. Lombok常用注解和功能
  8. 素数环-dfs回溯+二维数组记录(c++实现)
  9. leetcode算法刷题记录表
  10. 手工搭建APACHE服务