MySQL对于有大量重复数据表的处理方法
2024-08-21 19:35:18
需要在MySQL的一张innodb引擎的表(tableA)上添加一个唯一索引(idx_col1_u)。但是对于每个key(col1)表中已经有大量重复数据。此时,做数据的手工清理,或者SQL处理是非常耗时的。
MySQL有一个独有的 alter ignore add unique index的语法。
ALTER [ONLINE | OFFLINE] [IGNORE] TABLE tbl_name
行为类似于insert ignore,即遇到冲突的unique数据则直接抛弃而不报错。对于加唯一索引的情况来说就是建一张空表,然后加上唯一索引,将老数据用insert ignore语法插入到新表中,遇到冲突则抛弃数据。
点:alter ignore的语法不支持innodb,所以需要把table的引擎改为MyISAM;
解决方案
ALTER TABLE tableA ENGINE MyISAM; /*注意:修改表结构为MyISAM */
ALTER IGNORE TABLE tableA ADD UNIQUE INDEX idx_col1_u (col1); /*添加唯一索引,消重*/
ALTER TABLE table ENGINE InnoDB; /*可选,修改表结构为InnoDB */
最新文章
- 用原生javascript实现在页面动态显示时间
- iOS 直播-网速监控
- 获取centos6.5系统信息脚本
- SQL server 专业词汇
- phpspidercookie
- .NET Reflector Visual Studio Extension
- 将服务器上的myql数据库导入本地数据库
- Windows 7 Shortcuts (完整兼具分类有序,想我所想,赞!)
- c/c++性能优化--- cache优化的一点杂谈
- Mac下显示隐藏文件 以及修改 hosts文件内容
- [SignalR]Self-Host
- IOS SDK相机的详细解释/画廊(默认+他们的高清摄像头接口)
- java web:在eclipse中如何创建java web 项目
- 使用layui-tree美化左侧菜单,点击生成tab选项
- python note 13 内置函数
- js获取地址栏中的数据
- JAVA 没有重载运算符,那么 String 类型的加法是怎么实现的,以及String类型不可变的原因和好处
- 【HANA系列】SAP HANA XS的JavaScript安全事项
- lua 工具类(二)
- 最短路径-----迪杰斯特拉算法(C语言版)