我想从包含280.717.107个条目的表中删除重复项。
该表包含3个字段(无主键)user_id
,from_user_id
,value
。
在某些时候,我想删除一些重复的条目。
我们这样说:
user_id from_user_id value 1 2 4 2 2 4 3 2 4 1 2 4 #duplicate 5 2 4 8 2 4 9 2 4 9 2 4 #duplicate
我的桌子大小为4,8 GB(我把它丢弃了) 所以我去了服务器(不是phpMyAdmin),在MySQL中我做了以下事情:
CREATE TABLE temp_table SELECT DISTINCT * FROM my_table;
有一次我收到此错误消息:
“错误126 - 表”
的密钥文件不正确
有人说这条消息可能是因为内存已满。
我的问题是,我可以以某种方式绕过此内存崩溃并使用我的不同条目创建此新表吗?
答案 0 :(得分:1)
你可以通过应用像
这样的过滤器来批量尝试where user_id <= 1000
每次增加值。所以接下来就是
where user_id > 1000 and user_id <= 2000
就像您在评论中提到的那样,limit
和offset
也会有用。