Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.09.2013, 23:16   #1
Jleksern
Форумчанин
 
Аватар для Jleksern
 
Регистрация: 14.10.2011
Сообщений: 137
По умолчанию Удаление повтора из баз

Здравствуйте уважаемый.

В базе данных MySQL, в определенной таблицы у меня есть десятки миллионов записей.
Как можно удалить дубликаты в такой огромнейшей базе?
Jleksern вне форума Ответить с цитированием
Старый 01.09.2013, 23:25   #2
grominfo
Форумчанин
 
Аватар для grominfo
 
Регистрация: 30.05.2011
Сообщений: 651
По умолчанию

http://webaurum.blogspot.ru/2010/06/...ublicates.html
Создание, программирование и сопровождение сайтов любой сложности.
Изготовление программ на заказ.
Список услуг и портфолио на сайте www.andreygrom.ru
grominfo вне форума Ответить с цитированием
Старый 01.09.2013, 23:29   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Дубликаты в рамках одной таблицы, или развалены по разным таблицам, и выводятся в результате присоединений и т.п.?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 02.09.2013, 02:14   #4
Vad33
Участник клуба
 
Аватар для Vad33
 
Регистрация: 24.07.2009
Сообщений: 638
По умолчанию

Цитата:
Сообщение от Jleksern Посмотреть сообщение
Здравствуйте уважаемый.

В базе данных MySQL, в определенной таблицы у меня есть десятки миллионов записей.
Как можно удалить дубликаты в такой огромнейшей базе?
Если в базе дубликаты, значит что-то не в порядке со структурой и/или
логикой работы. Поэтому, вместе с чисткой нужно вводить ограничения.
** Удача терпелива. **
Vad3333@inbox.ru
Vad33 вне форума Ответить с цитированием
Старый 02.09.2013, 02:43   #5
Jleksern
Форумчанин
 
Аватар для Jleksern
 
Регистрация: 14.10.2011
Сообщений: 137
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Дубликаты в рамках одной таблицы, или развалены по разным таблицам, и выводятся в результате присоединений и т.п.?
таблица одна. Состоит из двух ячеек к примеру [name][age].

Цитата:
Сообщение от Vad33 Посмотреть сообщение
Если в базе дубликаты, значит что-то не в порядке со структурой и/или
логикой работы. Поэтому, вместе с чисткой нужно вводить ограничения.
Нет, бд у меня работает как хранитель информации ,которую я там размести и размещал действительно несколько раз одно и тоже.

Цитата:
Сообщение от grominfo Посмотреть сообщение
Пробовал когда-то таким способом.
Результат меня немного разачаров.
Проверял с начал скрипт на маленькой базе данных с несколькоми строк данных.
Он нашел одинаковые и удалил.
Но на большой БД (тогда записей было около 19 млн.) он не справился.
Дубликаты остались, возможно меньше, но остались и довольно таки много.
Jleksern вне форума Ответить с цитированием
Старый 02.09.2013, 02:59   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

как вариант, пишем скрипт, который помещает результат запроса в новую таблицу, если всё прошло удачно, оригинальную таблицу переименовываем в xxx_backup (или вообще удаляем), новую таблицу переименовываем в исходную. профит.

запрос вида
Код:
CREATE TABLE newtable_name
select distinct name, age 
from yuortable_name
или
Код:
CREATE TABLE newtable_name
select name, age 
from yuortable_name
group by name, age

Последний раз редактировалось Serge_Bliznykov; 02.09.2013 в 03:01.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 02.09.2013, 07:06   #7
Vad33
Участник клуба
 
Аватар для Vad33
 
Регистрация: 24.07.2009
Сообщений: 638
По умолчанию

Цитата:
Сообщение от Jleksern Посмотреть сообщение
таблица одна. Состоит из двух ячеек к примеру [name][age].

Нет, бд у меня работает как хранитель информации ,которую я там размести и размещал действительно несколько раз одно и тоже.
...
А ограничение (уникальный индекс по составному полю) и автоинкрементное поле добавить, религия не позволяет?
** Удача терпелива. **
Vad3333@inbox.ru
Vad33 вне форума Ответить с цитированием
Старый 02.09.2013, 08:24   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
профит.
Ну и потом еще как-то размер файла уменьшить научится
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Смена изображений фона - нет повтора (jquery) dream.reckless JavaScript, Ajax 1 16.01.2013 12:31
Задачи с операторами повтора. AntoshkaK Паскаль, Turbo Pascal, PascalABC.NET 0 09.12.2011 07:39
Запер повтора значений. GrayBy Microsoft Office Excel 1 06.10.2010 20:20
макрос повтора в делфи. agarty Работа с сетью в Delphi 6 20.06.2010 12:08
Генерировать массив без повтора значений элементов. На (С.) Raptor Помощь студентам 5 17.12.2007 14:42