欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

mysql对于有大量反复数据表的处理方法

更新时间: 2014-01-05 02:09:40 责任编辑: Author_N1

 

MySQL对于有大量重复数据表的处理方法

需要在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 */


上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:09:40
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/6392/
本文WWW.DOC100.NET DOC100.NET版权所有。