如何高效地从sqlite中的大表中删除重复项?

问题描述 投票:0回答:1

我有一个由约 2 亿行和 6 列组成的表,我只想保留所有列中唯一的行。

我目前正在创建表临时 AS SELECT DISTINCT * FROM 板;

它已经运行了 10 个小时并且仍在运行,所以我一定做错了什么。我读到了有关按 rowid 进行索引和分组的内容,但我不明白这将如何加快该过程,因为它仍在评估每一行和每一列。我主要是在这里寻找见解,因为我可能遗漏了一些东西。

sqlite sqlite3-python
1个回答
0
投票

你可以尝试:

create table temp (
    a,b,c,d,e,f,
    primary key (a,b,c,d,e,f) on conflict ignore
);

insert into temp (a,b,c,d,e,f)
    select a,b,c,d,e,f from plates;

其中

a
b
c
d
e
f
是相关列。

© www.soinside.com 2019 - 2024. All rights reserved.