我有一个表在mysql数据库中包含超过5亿条记录,我需要从中删除重复的记录,我尝试了这个表包含2000万条记录的查询,这是可以的,但是对于5亿条记录,这需要很长时间:
-- Create temporary table
CREATE TABLE temp_table LIKE names_tbles;
-- Add constraint
ALTER TABLE temp_table ADD UNIQUE(name , family);
-- Copy data
INSERT IGNORE INTO temp_table SELECT * FROM names_tbles;
有更好的解决办法吗?
1条答案
按热度按时间2ledvvac1#
一种选择是聚合,而不是
insert ignore
. 这样,数据库就不需要管理被拒绝的记录:我将更进一步,建议仅在填充表之后添加惟一约束,这样数据库就不需要检查重复项(查询已经保证了这一点),这将加快
insert
声明。