我有一个由约 2 亿行和 6 列组成的表,我只想保留所有列中唯一的行。
我目前正在创建表临时 AS SELECT DISTINCT * FROM 板;
它已经运行了 10 个小时并且仍在运行,所以我一定做错了什么。我读到了有关按 rowid 进行索引和分组的内容,但我不明白这将如何加快该过程,因为它仍在评估每一行和每一列。我主要是在这里寻找见解,因为我可能遗漏了一些东西。
你可以尝试:
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
是相关列。