来自 记录备份 2019-07-20 15:03 的文章

Mysql百万级数据量查重,只保留一条,粗暴方法

前两天在网站里写过一个方法:MySql查找重复的数据,只保留ID小的那条,其他删。对于数据量较小时有效,如果数据量较大,您又没有专门的数据库服务器来运行。会出现各种数据库运行错误,导致CPU占用过高等问题。
今天分享个简单粗暴的方法:利用insert ignore。
前提:我们把要查重的数据表叫做A表。比如想删掉A表中重复的title。
1.在同数据库中建立B表,结构与A表一样,给title加上唯一索引。
2.运行sql语句:
insert ignore into B select * from A; 把A表数据导入到B表。
3.查错,如果没错,把B表名改为A表。

关于INSERT IGNORE 与INSERT INTO的区别,可以参考此连接
https://www.cnblogs.com/stevin-john/p/4768904.html

TAG:mysqlINSERT INTOINSERT IGNOREmysql去重