LINUX.ORG.RU

SQL Удаление дубликатов


0

1

Допустим есть таблица table с полями a,b,c. Пара полей численные, одно текстовое, но не самая суть. Есть ли бест практис для удаления дубликатов записей через SQL? Под дубликатом понимается полное совпадение значений всех полей. На таблице нет ни уников, ни форенкеев, ни чеков, ни наследований. Есть индекс. Такая таблица приведена как утрированный пример, чтобы было проще понять суть.

В реальности же подобное необходимо проделать с таблицей с 30+ полями, в которой около 100 млн записей, из них процентов 30 дубли. При этом таблица очень популярна и наши сервисы очень любят оттуда читать. Можно ли подобное сделать «на живую», желательно без репликаций? Как долго вся эта прелесть будет исполняться?

СУБД: PostgreSQL

тот же вариант, сделать рядом табличку. в нее положить всех уникальных.

Rastafarra ★★★★ ()

create table new as select distinct * from old;

потом переименовуешь.

ukr_unix_user ★★★★ ()

explain analyze select distinct * from table в студию :)

SOmni ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.