|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
27.12.2017, 10:50 | #11 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
В таблице кроссов должно быть суррогатное ключевое поле, коль уникальность на уровне группы полей Бренд1, Артикул1, Бренд2, Артикул2 не поддерживается. Есть?
Если есть, то покажу на примере своей табличке YksDvig, ключевое поле YksDvig_Id и поля Bs,Ks которые буду проверять и удалять не уникальные. Здесь два, у тебя четыре, что не принципиально Следующий запрос сгруппирует по Bs,Ks, вернет максимальный YksDvig_Id и количество в группировке Код:
Код:
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 27.12.2017 в 11:27. |
27.12.2017, 11:27 | #12 |
Спокойный псих
Участник клуба
Регистрация: 19.03.2013
Сообщений: 1,538
|
Аватар, вложением прикрепил заголовки полей таблицы.
Из бренда и артикула создаётся общее поисковое значение. Это всё что есть.
Подпись ? Не, не слышал ...
|
27.12.2017, 11:43 | #13 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Это не все что есть. Уникальный ключ есть или нет? Code, например, случайно не уникальный ключ записи таблицы? Если в группе записей-дублей нет поля или группы полей, позволяющих однозначно идентифицировать запись, то средствами SQL удалить дубликаты и оставить только одну проблемно, хоть из программы, хоть из оболочки. В мускуле как-то limit можно прицепить, но запаришься его цеплять к куче групп-дубликатов. В сиквеле пришлось бы удалить всё из записей-дублей, запомнив предварительно инфу одной из них. Потом вставить то, что запомнил
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
27.12.2017, 11:52 | #14 | |
Спокойный псих
Участник клуба
Регистрация: 19.03.2013
Сообщений: 1,538
|
Аватар
Цитата:
Парсинг в лоб ?
Подпись ? Не, не слышал ...
|
|
27.12.2017, 11:55 | #15 | ||
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Цитата:
Цитата:
Если нет, выдерни во временную таблицу сгруппированные по брендам и артикулам записи-дубли Удали все записи-дубли используя эту временную табличку не оставляя ни одной Вставь по одной из каждой группы дубликатов из временной таблички
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 27.12.2017 в 12:01. |
||
27.12.2017, 12:17 | #16 | |
Спокойный псих
Участник клуба
Регистрация: 19.03.2013
Сообщений: 1,538
|
Получается, что уникального ключа нет. Да и смысл, это же набор конечных данных. Это если только какой нибудь внутренний ID, в котором я не вижу никакого смысла.
Цитата:
Можно не парсить, а для каждой записи составить зеркальный "ключ" (что то типа кэша), а в процессе искать повторы, которые были ранее. Но как составлять ключ - я ещё не придумал. И тем не менее, от парсинга как такового это не спасает. P. S. Лимит по миллиону вроде грузит.
Подпись ? Не, не слышал ...
Последний раз редактировалось OmegaBerkut; 27.12.2017 в 12:24. |
|
27.12.2017, 12:48 | #17 | ||
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Цитата:
Код:
Цитата:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
||
27.12.2017, 15:43 | #18 |
Спокойный псих
Участник клуба
Регистрация: 19.03.2013
Сообщений: 1,538
|
Да, плохо ... Для меня база данных - это средство хранения, а не обработки информации. Если движок базы позволяет добавлять-изменять-удалять информацию - это уже хорошо (не нужно напрямую в файлы БД писать). Обработка информации должна же происходить за пределами её хранилища. Гибкости всяко по больше будет.
Алгоритм составить может и не сложно, но вот процесс его выполнения будет происходить всё дольше и дольше (чем дальше по таблице, тем дольше смотреть на то, что было уже просмотрено. Банальный запрос Код:
Мне теперь либо перезапускать сервер/базу, либо ждать результата. Хоть выясню количество полных дублей (а мне ещё и зеркальные дубли нужно вычистить). Либо пока не ляжет база/сервер. P. S. За 35 минут выполнения этого запроса база не вернула ничего. И не нулевое количество (а запрашивал я количество), а просто ничего. Пошёл выполнять без COUNT. P. P. S. За 10 минут этот запрос без COUNT так же вернул ничего.
Подпись ? Не, не слышал ...
Последний раз редактировалось OmegaBerkut; 27.12.2017 в 16:17. |
27.12.2017, 15:46 | #19 |
Спокойный псих
Участник клуба
Регистрация: 19.03.2013
Сообщений: 1,538
|
И сейчас на компе это проблема ... Что можете посоветовать для составления такого хэш-ключа ?
За час обработало 700 000 записей (из них уже добрая половина - дубли). А записей всего 12 миллионов. И обработка выполняется всё медленнее и медленнее.
Подпись ? Не, не слышал ...
|
27.12.2017, 16:24 | #20 | ||
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Цитата:
Цитата:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
||
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
System.IO.File.Copy() компьютер вешается наглухо | OmegaBerkut | C# (си шарп) | 13 | 25.02.2017 14:32 |
Ошибка в запросе INSERT php | Godfather07 | Помощь студентам | 0 | 21.02.2012 20:57 |
Можно ли при пост-запросе InDy получить только куки (при логине на сайт например)? | TwiX | Работа с сетью в Delphi | 2 | 07.02.2010 08:21 |
ошибка при запросе добавления | Rin | БД в Delphi | 4 | 26.12.2009 01:41 |
Зависание при пост запросе | Фенрир | Работа с сетью в Delphi | 1 | 14.12.2009 15:18 |