【发布时间】:2017-02-14 14:44:48
【问题描述】:
我已经做了很多寻找,但我尝试过的每个解决方案似乎都不起作用。我已经删除了主键和自动增量。
我有一个大约有 260k 行的数据库。架构如下所示: [架构]http://imgur.com/X0oROkc
它是 Amazon RDS 上的托管 MySQL innodb 实例。当我尝试执行以下命令删除重复的行(推文、用户名)时,我收到 2006 错误 - mysql 服务器已消失。
create temporary table tmpTable (id int);
insert tmpTable
(id)
select id
from rawTweets yt
where exists
(
select *
from rawTweets yt2
where yt2.tweet = yt.tweet
and yt2.username = yt.username
and yt2.id > yt.id
);
DELETE FROM rawTweets USING rawTweets, tmpTable WHERE rawTweets.id=tmpTable.id
任何帮助将不胜感激!
-马特
【问题讨论】:
-
IGNORE 是你的朋友 - 如果你使用 Mysql ALTER IGNORE TABLE db01 ADD UNIQUE KEY
idx1(@ 987654324@,username) -
大声笑 - 我不敢相信它是如此简单。花了三秒钟!
-
所提出的解决方案非常慢,因为 (1) 缺乏有用的索引,以及 (2) 算法缓慢。
标签: mysql innodb amazon-rds