MySQL / ASP - удаление дублирующихся строк - PullRequest
0 голосов
/ 14 сентября 2011

MySQL / ASP - Удалить повторяющиеся строки
У меня есть таблица с 100 000 строк, которая называется «photoSearch». При переносе данных из других таблиц (это заняло кровавые времена, и я был чертовски устал), я случайно забыл удалить сделанный мной тестовый перенос, который оставил 3500 строк в таблице, прежде чем я перенес все за один раз.

Столбец идентификатора - «photoID» (INT), и мне нужно удалить все дубликаты, у которых photoID меньше 6849. Если бы я мог просто удалить дубликаты, это было бы менее болезненно, чем удалить таблицу и запустить другую передачи.

Кто-нибудь получил какие-либо предложения о наиболее практичном и безопасном способе сделать это?


UPDATE:

Я действительно ответил на свой вопрос. Я зарезервировал свой стол для безопасности, и затем я управлял этим:

ALTER IGNORE TABLE photoSearch ADD UNIQUE INDEX unique_id_index (photoID);

Это удалило все 3500 дубликатов за минуту:)


1 Ответ

0 голосов
/ 14 сентября 2011

Традиционный метод

Резервное копирование существующей таблицы photoSearch на что-то вроде tmp_photoSearch с использованием

create table tmp_photoSearch select * from photoSearch;

После этого вы можете выполнить массаж данных вtable tmp_photoSearch.
Как только вы получите ожидаемые результаты,
выполните таблицу подкачки

rename table photoSearch to photoSearch_backup, tmp_photoSearch to photoSearch;

Для увеличения скорости вставки (если узкое место в сети нетпередача),

http://dev.mysql.com/doc/refman/5.0/en/insert-speed.html

Чтобы повысить производительность для таблиц MyISAM, для LOAD DATA INFILE и INSERT увеличьте кэш ключей, увеличив системную переменную key_buffer_size

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...