|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Как отсортировать 1 миллиард записей? Максимум который сортирует mySQL - 3 миллиона записей. И то, начинаются страшные тормоза и зависание. Что делать? Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2021, 15:44 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg, а что мешает отсортировать снаружи обычным sort, ограниченным лишь размером свободного места на диске? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2021, 16:35 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg, настройки проверял? там сказано про сортировку ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2021, 16:38 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg, интересно, для чего такой огромный выбор? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2021, 16:40 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
вадя miltorg,интересно, для чего такой огромный выбор? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2021, 17:00 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
вадя, похоже на DW или ML задачу. У меня тоже есть таблицы с более, чем миллиардом записей и трансформация их в таблицы, содержащие уже полтора миллиарда записей. Но на PostgreSQL. MySQL на таких объемах применять не рискнул. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2021, 18:06 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg Максимум который сортирует mySQL - 3 миллиона записей. И то, начинаются страшные тормоза и зависание Нормально всё сортируется - при наличии подходящего индекса. А без него любая СУБД заткнётся на сортировке больших объёмов (или Вы всерьёз полагаете, что "взрослые" СУБД используют какие-то суперские алгоритмы сортировки, которые в разы эффективнее, чем у MySQL? огорчу...). miltorg Как отсортировать 1 миллиард записей? Добавить в запрос предложение ORDER BY с требуемым выражением сортировки. Для более осмысленного ответа недостаточно данных. Нужны как минимум: точный текст запроса, точные DDL всех задействованных таблиц, статистика по данным. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2021, 18:44 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Akina или Вы всерьёз полагаете, что "взрослые" СУБД используют какие-то суперские алгоритмы сортировки, которые в разы эффективнее, чем у MySQL? Про эффективность ничего не скажу, так как не сравнивал, но то, что в нормальных СУБД объем сортируемых данных ограничен только доступным дисковым пространством или явно заданными лимитами на его использование, знаю точно. За счет сочетания sort-merge, скорость сортировки, как только сортируемый набор не помещается в запрошенную планировщиком память, зависит от объема почти линейно. Точнее линейно на фазе сортировки, а на фазе слияния нарастание логарифмическое по основанию 2 или более. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2021, 19:00 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
ptr128 в нормальных СУБД объем сортируемых данных ограничен только доступным дисковым пространством или явно заданными лимитами на его использование Любая СУБД теоретически выполнит сортировку любого объёма данных - во всяком случае в пределах объёмов, определяемых возможностями СУБД по хранению и обработке. И, по-моему, сейчас все СУБД, столкнувшись с необходимостью сортировки массива, не умещающегося в памяти, используют внешнее слияние. ptr128 линейно на фазе сортировки ptr128 на фазе слияния нарастание логарифмическое по основанию 2 или более ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2021, 20:00 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Клиент готов запустить свой компьютер хоть на неделю. Поэтому задачу придётся решать. Итак. Есть строчечный файл: Код: php 1. 2. 3. 4. 5. 6. 7.
То есть дата и 20 цифр. Строчек в файле - 5000. Будут добавляться - по 1 в день Из каждой строчки берётся 10 цифр и из них делаются не повторяющиеся комбинации: Код: php 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2021, 23:54 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Символ подчёркивания - пожелание заказчика - то есть его наличие - не критично Нужно получить все совпадения. В идеале в виде сортировки. То есть на самом верху таблицы: Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 00:02 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Строить все комбинации, а потом искать совпадение - это [censored]. Надо нормализовать данные, потом выполнять сравнение, получая для каждой пары дат количество совпадений, а вот потом для тех пар, у которых это количество превышает 10, строить десятки значений. PS. Даже всё описанное - это не задача, а выбранный способ решения некоей неозвученной задачи. И не факт, что способ выбран правильно... PPS. Если Вы в форуме по MySQL - то пишите дату в его формате, YYYY-MM-DD. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 00:06 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
До одного миллиона записей всё грузилось чудно и быстро. Я открывал phpmyAdmin. Запросто и радостно делал сортировку. На 2 миллионах записей стала притормаживать сортировка - до 1 минуты. На 3 миллионах записей - я не смог даже просто открыть страницу в phpmyAdmin. Просто. Без никакой сортировки. ----------------------- Вот и весь мой рассказ. Это всё было на хостинге. Теперь клиент выделяет под это дело отдельный комп - который"может работат хоть неделю - лишь бы был результат" Что и как делать? Выделенный комп - под Виндос Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 00:11 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Akina, Дата написана в формате который пожелал заказчик. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 00:28 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Akina, 1. Я просто недостаточно знаю MySQL, чтобы утверждать, использует ли он сортировку-слияние с использованием диска или нет. При этом в PostgreSQL и MS SQL уход сортировки на диск/tempdb явно отображается в плане запроса. Про MySQL в этом вопросе не нашел вообще ни слова в гугле. 2. Прошу прощения, я и имел в виду N*log2(N) или меньше, в случае полифазного слияния. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 00:33 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg Есть строчечный файл: Код: php 1. 2. 3. 4. 5. 6. 7.
То есть дата и 20 цифр. Строчек в файле - 5000. Данные в нём - не секретные? можно выложить его? зипануть и прикрепить к сообщению... ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 01:15 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Akina ... PS. Даже всё описанное - это не задача, а выбранный способ решения некоей неозвученной задачи. И не факт, что способ выбран правильно... Это да. Описание похоже на "группировку по комбинации", то есть по сочетаниям по 10 из 20 С (20) (10) = 184,756 это худший случай, когда все 20 чисел разные Сортировка, видимо, сначала нужна только для того, чтобы образовать строковый ключ сочетания . Всего строк получается: 184756*5000 = 923 780 000 строк, для которых надо дальше сделать Group by ключу сочетания и датам 5 тысяч сортировок наборов из 20 элементов, ну это не должно быть неподъемным. Но группировка сколько -то потребует, от числа уникальных групп зависит. На таких размерах пару-тройку минут и подождать прилично. Хотя, если бы был известен физический смысл задачи, может быть нашлись какие-то пути сокращения размерности. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 01:36 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
раз ничего не предложили - я вижу только одно решение: 1. Возможно что нужно упорядочить-отсортировать исходный файл - хуже от этого не будет - точно 2. Набивать БД постоянно держа её в отсортированном - то есть в готовом виде. 3. Добавлять буквально по 1 миллиону записей или меньше - продолжая держать БД в готовом виде. После каждой записи? 4. Не открывать никакого phpmyAdmin - раз он тормозит. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 01:47 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Упс. совсем забыл. Писать то придётся под Виндос. Какую БД взять? Ведь всё равно придётся что-то ставить. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 01:59 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
вспомнил ещё. Если выгрузить всё в виде текстовых файлов то получится около 50 ГБ. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 02:22 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg Если выгрузить всё в виде текстовых файлов то получится около 50 ГБ. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 10:18 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Тоесть нужно определить что в 12 и 17 итд годах были события (хромосомы) с одинаковыми атрибутами? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 11:48 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Топик немного похож на унификацию https://www.sql.ru/forum/1270456-1/tyapnichnaya-unifikaciya и хотя там постановка про другое - про устранение дублей но то что обсуждалось - может быть применено и здесь. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 12:13 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Akina, Вариации 10 из 20 из каждой из 5 тысяч строк ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 13:13 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg , Вы упорно уходите от темы озвучить собственно задачу. Ну это я ещё понимаю - конкуренция и всё такое. Но Вы хотя бы определите требуемый результат - мне почему-то крайне сомнительно, что в качестве финального итога нужны все, абсолютно все, вариации каждой из записей, просто специальным образом сортированные. Финального - в смысле совсем. Ибо я вполне допускаю, что для завершения текущей подзадачи и для передачи следующей подзадаче это может быть допустимый формат. Равно как и сомневаюсь в оптимальности именно такого формата. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 13:30 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Akina, Нужны наиболее повторяемые записи. Ну пусть 10 записей или 20. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 14:02 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
вероятно что вы хотите найти другой алгоритм решения - это очень интересно. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 14:04 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
http://it-pearls.ru/top-10-sistem-upravlenija-bazami-dannyh/ авторЭта система управления базами данных использует стандартную форму SQL. Утилиты для проектирования таблиц имеют интуитивно понятный интерфейс. MySQL поддерживает до 50 миллионов строк в таблице. Предельный размер файла для таблицы по умолчанию 4 ГБ , но его можно увеличить. Поддерживает секционирование и репликацию, а также Xpath и хранимые процедуры, триггеры и представления. Это как это???!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 14:11 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg Вот и весь мой рассказ. Это всё было на хостинге. Теперь клиент выделяет под это дело отдельный комп - который"может работат хоть неделю - лишь бы был результат" Что и как делать? Выделенный комп - под Виндос Спасибо. Коробочное решение - найти любую dbms которая поддерживает до 1 000 000 000 rows на табличку. Загрузить туда эту колбасу из хромосом. Проиндексировать второе поле. И сделать что-то вроде Код: sql 1.
Коробочное решение - не спортивное. Если исходить из пятницы и большого числа машинного и людского времени то можно предложить другие алгоритмы. Но основная оптимизация должна базироваться на минимизации пробегов по файлу. Желательно от 1 до 3. Поскольку файл большой и вся нагрузка упадет 80% на ожидание чтения диска. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 14:27 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg Нужны наиболее повторяемые записи. Ну пусть 10 записей или 20. Кстати, какое количество различных значений может встретиться среди тех "20 разных на одну дату" по всему массиву? miltorg вероятно что вы хотите найти другой алгоритм решения - это очень интересно. Однозначно. И первое, что следует сделать - забыть про намерение обойтись одним запросом. Хранимая процедура. Это позволит сбрасывать промежуточные данные в статические таблицы и изрядно компенсировать недостаточный объём оперативной памяти. miltorg Это как это???!!! Ну ты на сайт посмотри! АйТи-перлы... ну или ежели по-нашему - откровенная глупость там написана. Не обращай внимания - от британских учёных и не такое читали... ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 14:58 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
mayton, В связи с отстутствием подобных объемов на MySQL, попробовал отсортировать миллиард записей на PostgreSQL. Меньше, чем за 7 минут получилось. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 15:03 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
ptr128 В связи с отстутствием подобных объемов на MySQL ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 15:18 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Akina, Вы неверно меня поняли. У меня просто на MySQL нет таблиц с миллиардом записей и даже нет места такую таблицу создать (тестировал на таблице размеров в 200ГБ). А на PostgreSQL такие таблицы уже имеются в наличии. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 15:23 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Давайте теперь спортивное решение. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 15:38 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
ptr128, если это правда - то спасибо вам огромное. Вы вселили в меня надежду что я наконец то справлюсь с этой задачей. В чём же была моя ошибка? В том что я пытался сортировать в phpmyAdmin? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 16:18 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg, все возможно. Я для общения с БД не часто пользуюсь GUI, предпочитая писать запросы руками. P.S. Попробуйте DBEaver. Может понравится. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 16:25 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Для всех. Помогите пожалуйста: 1. На Убунту Ставлю сейчас mySQL, Апач, phpmyAdmin 2. Создаю таблицу в базе: id mydata и iz2010 3. Я с Индексом - не совсем понимаю - нужно сразу на поле iz2010 задать индекс? 4. Наполняю до миллиона - говорю вам результат. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 16:46 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg [b]3. Я с Индексом - не совсем понимаю - нужно сразу на поле iz2010 задать индекс? Индекс можно построить потом. Есть даже рекомендации от Oracle, что для быстрой загрузки данных из CSV в бд - сначала грузят просто данные. Потом включают на таблицах триггеры и индексы. В сумме выходит быстрее. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 17:04 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
mayton Давайте теперь спортивное решение. По поводу спорта. Предусловия. Для современного ПК объем доступной оперативной памяти в среднем составляет 8Г. И на этот объем мы можем расчитывать в реализации алгоритмов. Объем диска - неограничен. И характер доступа к файлу - последовательный. Объем файла - 1 000 000 000 * длину строки = = длина даты + длина хромосомы + пробелы и переводы строк = 1 + 1 + 8 + 60 символов (байт) = 70 000 000 000 байт = = 70 Гигабайт. Можно создавать дополнительные служебные файлы для решения данной задачи. Гипотеза 1. Если данных - много (миллиард) а ключ такой длинный (5 6 8 11 16 18 19 22 25 34 37 40 42 51 55 59 61 64 65 69) то велика вероятность что 99.9% данных в таблице - будут уникальны. Далее. Если так много уникальных - то они не интересны как исходные данные. Тоесть гистограмма где-то такая. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
В этой задаче - можно сделать сильную оптимизацию если сделать 2 прохода по текстовому файлу и отбросить те ключи которые были по 1 разу. 1) За 1 проход отфильтровываем (отбрасываем) эти 99.9% уникальных ключей. Используем in-memory структуры данных с экономной формой представления ключей. Сохраняем те что остались как кандидаты с (candidates.csv). Здесь я опираюсь на доступные мне 8Гб. 2) На 2 проходе их кандидатов - формируем хеш-табличку и в ней ведем подсчет количества. Здесь я тоже предполгагаю что оставшиеся 0.1 % ключей лягут как хеш-табличка в 8Гб. 3) Публикуем top 20 результатов из этой таблички с сортировкой по count. Весь этот алгоритм потребует 2 пробега по файлу. И он будет работать только на условиях тех гипотез что я описал. Если баланс уникальных - неуникальных ключей в гистограмме будет не 99 к 1 а более другой то памяти не хватит для 1 фазы алгортма и мы упадем по out of memory. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 17:29 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
mayton miltorg [b]3. Я с Индексом - не совсем понимаю - нужно сразу на поле iz2010 задать индекс? Индекс можно построить потом. Есть даже рекомендации от Oracle, что для быстрой загрузки данных из CSV в бд - сначала грузят просто данные. Потом включают на таблицах триггеры и индексы. В сумме выходит быстрее. Я это видел воочию. Стоит только поставить на поле Индекс - время загрузки очень существенно увеличивается. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 17:30 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
mayton, Я ничего не понял. На 3 миллионах записей - совпадений примерно 5 - одна штука, 4 совпадения - 2 штуки, 3 совпадения - не очень то и нужны. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 17:35 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Хорошо. Тоесть тройки и двойки и единички - в сад. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 17:38 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg Я ничего не понял. Сорян. Я иногда излагаю сумбурно потому что мысль опережает пальцы. Впрочем я могу написать макет кода на Java а участники попробуют сами что-то там поковырять и понять лучше. Один финский парень сказал что код лучше слов. Я с ним согласен но читатели тоже должны быть в контексте того что происходит. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 17:40 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
mayton, хотел вам ссылку на исходный файл послать - но что-то не нашёл как. Как? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 17:49 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg, а не проще ли выявлять совпадения сразу же при попадании их в таблицу? То есть, в триггере, при обнаружении совпадения просто записывать ссылку на него в другую таблицу. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 17:52 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg Пока не надо. Тем более что если 50Гигов качать. Это... нудно как-то. Лучше-бы был генератор шума который формировал бы файл с аналогичной гистограммой хромосом. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 17:52 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg хотел вам ссылку на исходный файл послать - но что-то не нашёл как. Как? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 18:04 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 18:07 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Не знаю. Сейчас попытаюсь всё сделать как раньше. А там дальше буду-будем думать. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 18:09 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
mayton, Исходник - маленький. - 5 тысяч строк по 20 цифр ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 18:11 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Изменил: Код: plsql 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 18:35 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg, myData VARCHAR(12) это почему так? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 18:37 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg mayton, Исходник - маленький. - 5 тысяч строк по 20 цифр Опубликуй здесь в форуме хотя-бы 100 строк чтоб было наглядно. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 18:37 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
mayton Опубликуй здесь в форуме хотя-бы 100 строк чтоб было наглядно. и что про сжатие 50Г? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 18:38 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg Изменил: Код: plsql 1. 2. 3. 4. 5. 6.
Шапка отличается от этого. Код: sql 1. 2. 3.
myData - это дата? А Данные - 40 символов. Маловато для второго поля. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 18:39 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
mayton, Сейчас. - Организую заполнение - тогда и покажу уже заполнение таблицы. ------------- Исходник не мой - выложить не могу. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 18:43 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg, разрядность чисел только 1 и 2 знака? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 18:47 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
вадя, Да ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 19:07 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg Да уменьшится размер и сортировка ускорится ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 19:40 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg ptr128, если это правда - то спасибо вам огромное. Вы вселили в меня надежду что я наконец то справлюсь с этой задачей. В чём же была моя ошибка? В том что я пытался сортировать в phpmyAdmin? На хостинге, мне кажется, квота стоит на доступ к системным ресурсам. Если дело в этом, то обращение из собственного скрипта никак не повлияет на результат. Будет всё то же самое. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 19:52 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Вопрос в том, что нужно получить в результате. csv файл с миллиардом записей? Можешь попробовать в биг дату в паркет перегнать с партиционированием по полю сортировки. А так общий совет - "есть слона по кускам" выбрать первую часть данных, по тому полю, по какому сортируют, потом вторую порцию данных и так далее... ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 20:17 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Александр Бердышев, В результате - нужно 100 первых цифр ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 20:21 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Полезли первые циферки: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 20:28 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Зависает. На первой же строке исходника - зависает. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 20:50 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg Зависает. На первой же строке исходника - зависает. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 20:58 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Всем, Оно не зависает! Оно пишет 1000 записей около 20 сек. Сейчас точно скажу. Так и должно быть? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 21:07 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg Оно не зависает! Оно пишет 1000 записей около 20 сек. Сейчас точно скажу. Так и должно быть? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 21:09 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
10 тысяч записей - 3 мин !!! 50 записей в секунду. Так и должно быть? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 21:17 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg 10 тысяч записей - 3 мин !!! 50 записей в секунду. Так и должно быть? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 21:19 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
вадя, У вас сколько записей в секунду? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 21:19 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
вадя, Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 21:22 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg, это что такое? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 21:25 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
вадя, что вам не понятно? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 21:29 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg что вам не понятно? и запись по одной записи? тогда автор50 записей в секунду.нормально ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 21:31 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg 10 тысяч записей - 3 мин !!! 50 записей в секунду. Так и должно быть? Медленная скорость вставки в БД? Много может быть причин. Самое тривиальное - у тебя включен режим autocommit. В этом случае БД напрягается фиксируя каждое движение в общий перформанс низкий. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 21:34 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg, а если в лоб падает? Код: sql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 21:34 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
вадя, А как вы предлагаете? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 21:41 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg А как вы предлагаете? когда вставляется по несколько строк. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 21:44 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg, https://dev.mysql.com/doc/refman/8.0/en/insert.html http://www.mysql.ru/docs/man/INSERT.html ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 21:44 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
ptr128, Я в первом сообщении ошибся. Ничего не падает. Просто запись в БД - 50 записей в сек. Ваш запрос я вообще не понял. Пока никакой сортировки нет. Пока только наполнение. Я не могу с такой скоростью обработать наполнение даже из одной строки исходного файла. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 21:45 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg Я не могу с такой скоростью обработать наполнение даже из одной строки исходного файла. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 21:48 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg, я так понял, что в Вашей таблице миллиард записей и Вы хотите найти те, в которых поле Dannye совпадает больше трех раз. Именно это запрос и делает. Или я неправильно понял? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 21:48 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
mayton, Спасибо. Хоть и не понятно как этим воспользоваться в моём случае. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 21:50 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg, ты вставляешь из файла? или? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 21:52 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
ptr128, Вы всё правильно поняли. Но раньше я работал на другой машине - на хостинге - там наполнение шло гораздо веселей. и не вызывало затруднений. А сейчас я завис даже на наполнении. То есть пока нет никакой сортировки - пока просто наполнение. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 21:54 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg mayton, Спасибо. Хоть и не понятно как этим воспользоваться в моём случае. В консоли это называется autocommit off. Обычно После этого пачка inserts рассматривается как 1 транзакция а не сто тыщ. Разумеется в конце надо дать явный commit. Еще одно. Я не спец в MySQL. Но обычно в БД для пакетной загрузки batch/bulk insert из текстовых файлов, разработаны готовые утилиты. Возможно вот эта она https://dev.mysql.com/doc/refman/8.0/en/mysqlimport.html В Oракле ей аналог - sqlloader. Эти утилиты знаю много workarounds чтоб писать пачками и в 1 транзакцию и еще и используют другие хитрости. Тоесть если ты хочешь загрузить лярд строк в БД - то лучше всего на Perl просто сформировать текстовый файл и потом его прогрузить с помощью mysqlimport. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 21:56 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg, просто записать в файл - сможешь? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 21:57 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
вадя, исходный файл - 5 тысяч строк день года и 20 цифр Из 20 цифр нужно сделать различные. неповторяющиеся комбинации из 10 цифр И так с каждой строкой исходного файла. Потом сортировка - для того, чтоб найти повторы. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 21:58 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
вадя, Запросто и быстро. Около 50 ГБ получается. Около часа работы - если кусками. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 22:01 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg, Но текстовые файлы сами по себе ничего не сортируют, к сожалению. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 22:03 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg, а в каком виде эти данные сейчаc? И что мешает их загрузить через Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 22:04 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
mayton, Спасибо. Если я вас правильно понял - нужно пытаться сделать меньше запросов. Сейчас подумаем как... ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 22:05 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
ptr128, Пока ни в каком вообще. Потому как со скоростью 50 записей в секунду - я до смерти не загружу 1 миллиард :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 22:08 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg, ну в каком-то виде эти данные все же должны быть? Иначе грузить нечего. Вот я и спрашиваю, какой формат исходных данных? Просто текстовый файл? Результат выгрузки mysqldump? Или еще что-то? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 22:12 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg Но текстовые файлы сами по себе ничего не сортируют, к сожалению. я ж ссылки дал!!!! miltorg Запросто и быстро. Около 50 ГБ получается. Около часа работы - если кусками. потом вставь всё из него https://dev.mysql.com/doc/refman/8.0/en/loading-tables.html ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 22:13 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg miltorg, Но текстовые файлы сами по себе ничего не сортируют, к сожалению. Если эту задачу поднимать например в Unix форумах - то там она решается мгновенно. Админы юзают эту утилиту. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Она достаточно шустро сортирует текстовые файлы. И даже есть дисковые оптимизации на тот случай когда окно сортировки стало больше чем доступная память. Единственно... для нашего случая где строка - композитная надо ее авк-нуть или гавкнуть. Как-то так. Чтоб выбрать вторую колонку после даты. Код: sql 1.
Опция -nr должна делать подсчет. Еще некоторые детали по реализаци здесь http://vkundeti.blogspot.com/2008/03/tech-algorithmic-details-of-unix-sort.html ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 22:13 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
ptr128, Спасибо! Всё забегало гораздо быстрее. Гораздо. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 22:15 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Сделало 100 тысяч за 2 мин 800 записей в секунду - это уже лучше. Я что то забыл. А сколько вариантов с одной строки? 10 из 20? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 22:27 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Ура! Я обработал 1-ю строку. Осталось всего то 5 тысяч строк и плюс каждый день по строке. :-) Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 23:08 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Есть еще такая хакерская штука как "кранч" Код: sql 1. 2. 3. 4. 5. 6. 7.
С моей точки зрения она - годится для брутфорса. Но авторы - завуалировано сообщают что это создавалка "списка слов базирующихся на критериях". Вобщем если эти хромосомы - суть 10 цифр в 20 ричной системе счисления - то мы можем их всех сгенерить так. Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 23:26 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
ptr128 miltorg, а если в лоб падает? Код: sql 1. 2. 3. 4.
Спасибо. Вроде пока совсем быстро: Код: plsql 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2021, 23:33 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Слушайте. А ведь вроде не имеет никакого смысла сортировать исходную строку если в ней не совпадают как минимум 10 цифр Почему я раньше до этого не додумался? Или нет? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2021, 00:39 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Мне кажется что если выкинуть эти глупые циклы и заменить их на нормальный поиск в глубину - то можно просто учесть лексикографический порядок сортировки и получать на выходе сразу сортированный набор. Не? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2021, 00:48 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg, Все решается с помощью мат анализа (я такое еще в школе на высшей математике лузал как семечки). Погуглите по слову комбинаторика (там много подобных задач с формулами для решения - выбирайте что вам ближе по задаче, я все посты в теме не читал). Единственное привести строки к одному виду (в вашем случае начинаться и заканчиваться строка должна подчеркиванием, либо другим разделителем). Но вам конечно виднее. ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2021, 00:48 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
нужно найти строки имеющие 10 совпадений цифр ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2021, 01:32 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg, for $e (@a, @b) {$inion{$e}++ && $isect{$e}++;} ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2021, 02:57 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg нужно найти строки имеющие 10 совпадений цифр ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2021, 06:50 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
По смыслу это что-то похожее на https://en.wikipedia.org/wiki/Cosine_similarity , которая часто используется в машинном обучении. У каждой записи есть вектор из 100 признаков. Можно эти данные представить как у ТС: если N-ый признак есть, то в строке присутствует число N. Другой способ представить эти данные - это сделать 100 столбцов, в каждом из которых ставить либо 0 (если признака нет), либо 1 (если признак есть). В итоге у нас получается разреженная матрица размером 1'000'000'000 х 100. Умножаем её саму на себя, получаем разреженную матрицу 1'000'000'000 х 1'000'000'000. Затем, если видим, что для пары "строка-столбец" значение ячейки больше некоторого значения (либо 10 в случае простого перемножения матриц, либо 0.5 если вычисляли cosine similarity), значит эти записи достаточно похожи друг на друга. Но здесь не понятен один момент. Если мы сравниваем этот миллиард записей между собой, то это задача кластеризации. Одни похожие записи попадут в один кластер, другие - в другой, и т.д. Задача найти скажем первые 10 наиболее похожих записей просто бессмысленная. Можно объединить такие записи в один кластер: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
Другие похожие записи попадут в другой кластер. А если у нас на входе допустим одна запись и нужно сравнить её с этим миллиардом записей и найти N наиболее похожих, то это совершенно другая задача. Я бы сначала разобрался в чем смысл исходной задачи. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2021, 07:19 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Перечитал тему, и как-то не понял, мне одному кажется что решение задачи в иной плоскости? Дано: дата и 20 цифр. Почему их не загнать в таблицу "повдоль" в три колонки: номер записи, дата, число (одно!). В этом разе станет достаточно сопоставить количество совпадающих строк (чисел) у номеров записей в возрастающем порядке и только. Типа так: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57.
Получаем временную табличку, в которой заведомо меньше 100 записей (числа не более чем двузначные) и далее строим запрос по поиску требуемых совпадений, поиском вхождения в подстроку .. или можно точно также разложить повдоль и повторить сборку по 10 совпавших номеров.. Не? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2021, 09:09 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Тут получим: numbercnt1rows52"1+2"72"1+2"13"1+2+4"33"1+2+4"62"1+3"82"1+3"23"1+3+4"43"1+3+4" Остается только выбрать такие строки, которые присутствуют в 4-х числах (задачу уменьшил, всего 8, найти совпадение по 4-м), тут это: 1+2, числа: 5,7,1,3 1+3, числа: 6,8,2,4 1+4, числа: 1,3,2,4 Справитесь? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2021, 09:23 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Arhat109, только подвох в том, что у вас на выходе каждая из строк длиной до миллиарда номеров :) И как эти гигантские строки сравнивать между собой хз, или я чего-то не понял. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2021, 10:13 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Arhat109, не понял я ничего. Вот, например, есть таблица: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
Добавьте в строку любую дату или вообще просто пронумеруйте. И найдите максимальное количество совпадений 10 цифр. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2021, 12:28 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg, любых 10 чисел или только первых? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2021, 12:36 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg, Вот например я вчера добавил 5 или чуть больше первых строк и получил mysql> WITH MyScope AS ( -> SELECT Id, Dannye, COUNT(1) OVER (PARTITION BY Dannye) AS Cnt -> FROM tabiz2010 ) -> SELECT * FROM MyScope WHERE Cnt>1; Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
4 rows in set (18.27 sec) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2021, 12:37 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg, Забыл. Какую то цифру добавил искусственно. Сейчас ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2021, 12:39 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3. 4. 5. 6.
Так должно быть. Вероятно что это 3 и 5-я строка исходного. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2021, 12:44 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg miltorg, Вот например я вчера добавил 5 или чуть больше первых строк и получил mysql> WITH MyScope AS ( -> SELECT Id, Dannye, COUNT(1) OVER (PARTITION BY Dannye) AS Cnt -> FROM tabiz2010 ) -> SELECT * FROM MyScope WHERE Cnt>1; Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
4 rows in set (18.27 sec) Миллион строк за 20 сек. А дальше будет хуже или линейно будет рости? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2021, 12:49 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg, вот почему не можно сформулировать правильно конечную задачу? и отвечать на вопросы ptr128 любых 10 чисел или только первых? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2021, 12:57 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Ares_ekb Arhat109, только подвох в том, что у вас на выходе каждая из строк длиной до миллиарда номеров :) И как эти гигантские строки сравнивать между собой хз, или я чего-то не понял. Откуда взяли миллиард номеров, если их в исходном сообщении указано 5000 "всего" и прирост по одному в день? Скуль стока не проживет .. кмк. ;) Как понимаю: 1. в числах строки нет повторов, отсюда их можно упорядочить по возрастанию 2. числа в строке максимум двухзначные, стало быть крайнее число: 99 3. Сама табличка не велика, но простой перебор комбинаций - огромен. Отсюда: Даже если одно и тоже число присутствует в каждой строке - в сборке длина строки не может превысить количество номеров строк. Откуда "миллиарды"? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2021, 12:58 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
вадя, Потому что мне не понятен вопрос. Какие первые цифры? Откуда это взялось? Откуда? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2021, 13:06 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Arhat109, Потому что брать нужно 10 цифр из строки. 10. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2021, 13:07 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg Arhat109, не понял я ничего. Вот, например, есть таблица: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
Добавьте в строку любую дату или вообще просто пронумеруйте. И найдите максимальное количество совпадений 10 цифр. Добавил и даже пронумеровал. Посмотрите пример, он упрощен, там всего по 8 цифирек на строку. Можно скопировать и проверить.. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2021, 13:08 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg А дальше будет хуже или линейно будет рости? Я Вам сразу предлагал использовать триггер для выделения дупликатов. Но задачу Вы не озвучили толком. Если таблица пополняется регулярно и задача выделения дупликатов тоже регулярна, то триггер будет эффективней. Если задача разовая - то нет. Так же Вы не описали, какие ограничения на этот ряд чисел накладывается. Например, если числа ограничены 128 и всегда записаны по возрастанию, эффективней будет кодировать их битовой строкой длиной всего в 16 байт. И быстрее сравнивать. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2021, 13:10 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg Arhat109, Потому что брать нужно 10 цифр из строки. 10. В вашем варианте в строке 20 цифирек, а брать надо 10. В моем примере в строке 8 цифирек, а беру 4. Мне было лениво рисовать инсерт на 20 цифирек для каждой строки. Это как пример иного подхода к решению. Строку надо хранить в мускуле повдоль, а не поперек. Тогда можно группировать и считать итого.. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2021, 13:11 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg Какие первые цифры? Откуда это взялось? Откуда? miltorgнайдите максимальное количество совпадений 10 цифр. ptr128любых 10 чисел или только первых? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2021, 13:12 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Arhat109, Дайте пожалуйста результат. Если он есть и он правильный - тогда интересно. А ломать голову... - я правда ничего в вашей теории не понял. Тем более вы про 8 цифр. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2021, 13:13 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Arhat109 Строку надо хранить в мускуле повдоль, а не поперек. Если при этом миллиард строк превратится в десять миллиардов, то вряд ли. А вот использование битовой строки в данном случае выглядит привлекательно. Но недостаточно данных от ТС, чтобы в этом убедиться. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2021, 13:14 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
ptr128, тут непонятна постановка задачи целиком .. если табличка растет (по одной записи в день), то не факт что триггер сильно поможет, да и вообще востребован. Как вариант подхода (числа - двухзначные), ещё можно их запихать в табличку со 100 полями (булевыми): есть в этой строке такая цифра или ее там нету и смотреть у каких строк поле имеет значение "есть такая цифирька".. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2021, 13:16 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
ptr128, Задача пополняется как минимум каждый день. А в перспективе - задачи которые пополняются значительно чаще. 3 раза в час или даже хуже. Добавляется 1 строка. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2021, 13:16 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg, тогда лучше поручить выделение дупликатов триггеру. Но это верно только исходя из того, что 99% строк уникальны. Так в каком диапазоне находятся исходные числа? [0,1000000]? [1,100]? [-10000,10000]? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2021, 13:22 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg Arhat109, Дайте пожалуйста результат. Если он есть и он правильный - тогда интересно. А ломать голову... - я правда ничего в вашей теории не понял. Тем более вы про 8 цифр. Там же есть всё, что Вам требуется: создание таблички, вставка значений, запрос, что формирует промежуточный результат с выбранными строками с данной цифирью .. и даже его результат. Все что осталось, это выделить из результата то, что требуется найти: номера строк и сколько раз они встречаются в результате. Показал даже какой результат надо получить вторым этапом. .. просто я бы его не стал делать в скуле, а реализовал бы "на клиенте". Все что требуется это операция поиска подстроки в строке результата. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2021, 13:27 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Arhat109, тема началась с 1 млрд. записей, потом ТС начал наводить тень на плетень про какие-то файлы по 5000 записей. Количество комбинаций при выборе из 100 чисел по 20 чисел в одной строке без повторов равно n!/(k!*(n-k)!) = 100!/(20!*80!) = 10^21. Непонятно какое распределение у чисел, может какие-то встречаются на много чаще других, но если считать вероятность появления всех чисел одинаковой. И если всего записей 10^9, то вероятность полного совпадения каких-нибудь двух записей совсем ничтожная. Вычисление вероятности совпадения хотя бы 10 цифр я не осилил, но наверное тоже не очень большая. Я просто пытаюсь прикинуть сколько вообще может быть записей на выходе. В зависимости от распределения может быть ни одной, а может и миллиард, если все записи похожи. Я всё равно не понимаю в чем задача. milltorg можешь ответить на эти вопросы? 1) В каждой записи 20 чисел. Мы считаем, что записи похожи, если в них совпадают любые 10 чисел? Например, эти три записи похожи? Или третья не считается похожей? Код: sql 1. 2. 3.
2) Что делать с такими записями? Код: sql 1. 2. 3.
1-ая и 2-ая похожи между собой. 2-ая и 3-я тоже похожи между собой. Но 1-ая и 3-я вообще не имеют ничего общего. На выходе нужно выводить все 3 записи? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2021, 13:29 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Ares_ekb, Ну ТС действительно утомил уже тем, что не может четко озвучить поставленную задачу во всех подробностях. А мы уже гадаем на кофейной гуще, пытаясь хоть как-то восстановить отсутствующую информацию ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2021, 13:37 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Ares_ekb, Про миллиард записей ТС внятно ответил, что это попытка решения его задачи в лоб, перебором. Сама табличка - типа 5000 записей по 20 чисел. Как видно из последнего, там даже поле даты не актуально, но внезапно выяснилось что пополняться она может существенно резвее, чем в раннем описании "раз в день", что меняет подход к решению задачи и вариант с триггерами и сбором статистики в иное место становится вполне актуальным. Мне "показалось", что это задача из области поиска "выигрышного билетика" в столото или что-то подобное .. найти сколько выигрышных билетов в комбинации по 10 цифр (двухзначных как было заявлено) из набора в 20 заполняемых ... продаются билетики, прилетают "строчки" .. по ним смотрим наиболее популярные цифирьки. Но это моя трактовка .. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2021, 13:44 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Ещё в продолжение: 3) Что делать с разными группами похожих записей? Код: sql 1. 2. 3. 4.
Например здесь похожи 1-ая и 2-ая. И 3-я и 4-я тоже похожи между собой. Есть две группы похожих записей: 1+2 и 3+4. На выходе нужно выдавать все 4 записи? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2021, 13:45 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Решение второй части на скуле (раз сами не справились) Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
и его результат: row_id cnt numbers181+2+3+4+5+6+7+8241+3+5+7342+4+6+8441+2+3+4 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2021, 13:49 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Arhat109, если это что-то типа лото, то тогда нужно сравнивать записи не между собой, а с выпавшей комбинацией? Я поэтому и засомневался сначала: это задача кластеризации записей (тогда сравниваем их между собой, выделяем кластеры похожих записей, но это слишком ядреная задача и слишком много вопросов) или задача поиска наиболее похожей записи (например, на входе есть одна запись с выигрышной комбинацией и нужно найти все записи, которые на неё похожи). У меня ощущение, что ТС хочет решить 2-ую задачу, но описывает 1-ую. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2021, 13:56 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
ptr128, Я ведь дал образец. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2021, 14:00 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Ares_ekb, как вариант это подготовка к тиражу, и выбрать надо иное.. :) В целом лучше использовать функцию find_in_set() вместо locate() или дополнять начало и конец строки запятыми и сравнивать включая запятые тоже. Иначе можно получить "не совсем то" или даже "совсем не то". Но это уже думаю, ТС справится самостоятельно. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2021, 14:02 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Arhat109, Результат нужен вот в таком виде: Код: sql 1. 2. 3. 4. 5. 6.
это требование заказчика ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2021, 14:03 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg Arhat109, Результат нужен вот в таком виде: Код: sql 1. 2. 3. 4. 5. 6.
это требование заказчика Цена вопроса? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2021, 14:10 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Arhat109, То есть ваше прежнее решение - Туфта? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2021, 14:15 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg, но по образцу невозможно судить о допустимом диапазоне чисел в нем. Можно только на кофейной гуще гадать. Или закладываться по самые помидоры, считая что числа могут быть в диапазоне от -9,223,372,036,854,775,808 до 9,223,372,036,854,775,807 ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2021, 14:26 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg Arhat109, То есть ваше прежнее решение - Туфта? Не понял, что Вы этим хотели заявить. Решение - выложено, набор данных - приведен. Вы отписали что Заказчику требуется "иной вид" .. ну так и доработайте до этого "требования Заказчика". Если не можете самостостоятельно, то возникает "вопрос цены", а также полноценного описания задачи. Возможно потребуется иное решение. Мне - это не известно, т.к. постановку задачи Вы не сделали. Но, в том ключе как Вы ее поставили тут выше - чем Вам не "решение"? Просто дешево и без переборов миллиардов записей. Свое любопытство я - удовлетворил, Вам нужно в ином виде? Ну так или справляйтесь самостоятельно или объявляйте ценник. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2021, 15:25 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg Александр Бердышев, В результате - нужно 100 первых цифр Ну так напиши LIMIT 100 Если будут проблемы - в условие WHERE добавь условие по полю сортировки. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2021, 15:33 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg Слушайте. А ведь вроде не имеет никакого смысла сортировать исходную строку если в ней не совпадают как минимум 10 цифр Почему я раньше до этого не додумался? Или нет? Мой метод вроде как работает: Код: sql 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2021, 15:54 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
ptr128 а что мешает отсортировать снаружи обычным sort То, что miltorg закоренелый виндузятник и не может знать о том, что такое "обычный sort" ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2021, 06:55 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Akina Ну это я ещё понимаю - конкуренция и всё такое. Он так жестоко демпингует, что никакой конкуренции уже быть не может. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2021, 06:59 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg Нужно получить все совпадения. В идеале в виде сортировки. То есть на самом верху таблицы: Ты всё делаешь не правильно. Тебе не нужна таблица на миллиард записей. Не нужно перемножать все эти множества. Реши задачу наоборот. У тебя есть 5к последовательностей. Берешь первую, считаешь число совпавших цифр для всех остальных строк. Там где их больше 10, собираешь все последовательности с таким же множеством, делаешь перестановки, выводишь. Повторяешь тоже самое для следующих. Твои данные влезают в ОЗУ полностью на много раз и всё это решается алгоритмически на раз-два. Нахера ты принципиально упёрся в решение через жопу sql? СУБД головного мозга? ps. Ой, у меня же нет правильного диплома ВО, зачем я всё это пишу. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2021, 07:15 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Данные (все 5000 записей) следует перевести в битовые величины длиной в 100 (ну или два раза по 50) битов. И именно так их хранить. Вместо строки "2_12_21_28_36_...", например, нужно получить битовую величину с единицами во 2, 12, 21 и так далее позициях. Получение количества совпадений чисел в 2 произвольных строках A и B - это количество бит в их побитовом произведении: SELECT BIT_COUNT(A & B). Т.е. при ежедневном добавлении новой строки нужно преобразовать ее список чисел в битовый формат (напр, в переменную A), после чего выполнить порядка 5000 произведений, Код: sql 1. 2. 3.
Если нужно единоразово прошерстить все строки Код: sql 1. 2. 3. 4.
Поскольку в MySQL максимальный диапазон ограничен 64 битами, придется использовать два поля по 50 бит. Ну и представить результат в формате, как нужно заказчмку. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2021, 15:13 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
paver, да, это офигенно! Я сразу понял, что хранить в двоичном виде лучше, но до битовых операций не допер! ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2021, 16:28 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
paver, Хорошее решение. Да, рано мы закопали битовые операции, хотя это первый за многое время случай, где они действительно уместны. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2021, 17:37 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Я практически решил задачу где совпадений в строках - 10 Остались решить задачи с 11 и 12 совпадений. Скорее всего я просто, по новой их разложу на 10 совпадений и добавлю к общей таблице совпадений. Потом сортировка, которая занимает секунды - и решение готово! ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2021, 12:18 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg Я практически решил задачу где совпадений в строках - 10 Тем временем тебе задачу уже решили в общем случае. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2021, 04:57 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
paver Поскольку в MySQL максимальный диапазон ограничен 64 битами, придется использовать два поля по 50 бит. Оказывается в 8-ке это ограничение уже снято. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2021, 09:52 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
crutchmaster, У меня практически есть полный код. Вчера я обработал случай при 11 совпадениях в строках. Сегодня обработаю 12 совпадений. 13 совпадений вроде не было вообще. А у вас нет кода. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2021, 14:01 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg Как отсортировать 1 миллиард записей? Максимум который сортирует mySQL - 3 миллиона записей. И то, начинаются страшные тормоза и зависание. Что делать? Спасибо. ФИЛЬТРОВАТЬ! ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2021, 15:33 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg Как отсортировать 1 миллиард записей? Э, извини, я не так прочитал в первый раз, вместо "миллиард" я прочитал "миллион", а то сразу бы сказал, что я об этом думаю... Ты что, идиот совсем? МИЛЛИАРД записей хочешь сортировать? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2021, 15:39 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
paver Оказывается в 8-ке это ограничение уже снято. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2021, 17:41 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Можно услугу такую продавать. Сортировку толстых файлов. От 70 Гб P.S. Побежал регистрировать домен под это дело.... ТС... я вам этого не говорил! ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2021, 18:47 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
вадя paver Оказывается в 8-ке это ограничение уже снято. https://dev.mysql.com/doc/refman/8.0/en/bit-functions.html "Bit operations become possible on values longer than 64 bits". ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2021, 05:49 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2021, 05:53 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg Сегодня обработаю 12 совпадений. Да переписать любым способом быстрее, чем ждать пока оно у тебя отработает для каждого случая. miltorg А у вас нет кода. У нас задачи нет с заказчиком и исходными данными. Нафига нам готовый код? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2021, 07:04 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
mayton, - мне 5 тысяч рублей. каждый месяц - за идею. Я буду доволен. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2021, 14:10 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
интересный топик... а в SQL никто так и не показал (и я не силен) упростим, есть показания х1, х2 ,х3,х4 на дату искать половину (или больше) всевозможных совпадающих показателей объекта... x = {x1 x2 x3 x4} y = (y1 y2) Y << X странно что это в топике MySQL это же Сишники по пятницам решают?) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2021, 22:02 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg mayton, - мне 5 тысяч рублей. каждый месяц - за идею. Я буду доволен. Знаешь как говорят в америке. За идею - 1 доллар. За реализацию 100 долларов. А за продажу решения - миллионы. А чтоб далеко не бегать - https://en.wikipedia.org/wiki/External_sorting внешняя сортировка или еще бывает дисковая сортировка Утилиты о которых я слыхал но лично не пробовал
нам не надо будет прогружать все в таблицу и индексировать нужное поле. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2021, 22:29 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Alex_Ustinov интересный топик... а в SQL никто так и не показал (и я не силен) 22261538 Alex_Ustinov Y << X Как это будет работать? Текущее решение - из цифр сделать биты, например 1,2,3,4,7 заменить на 0x4F (0100 1111). Потом сделать декартово с побитовом "и", посчитать биты и оставить всё, где получится больше 10. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2021, 03:58 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
crutchmaster, да, вчитался - хитро придумано ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2021, 18:42 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
у правда работает) интересно девки пляшут вхождение 7,17 в множество 2,3,4,15,17 Код: sql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2021, 19:14 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Задачу я наконец то решил. Теперь вопрос как это всё проверить? Кроме того что искусственно создать несколько одинаковых строк - ничего в голову и не приходит. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2021, 01:18 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
paver Данные (все 5000 записей) следует перевести в битовые величины длиной в 100 (ну или два раза по 50) битов. И именно так их хранить. Вместо строки "2_12_21_28_36_...", например, нужно получить битовую величину с единицами во 2, 12, 21 и так далее позициях. Получение количества совпадений чисел в 2 произвольных строках A и B - это количество бит в их побитовом произведении: SELECT BIT_COUNT(A & B). Т.е. при ежедневном добавлении новой строки нужно преобразовать ее список чисел в битовый формат (напр, в переменную A), после чего выполнить порядка 5000 произведений, Код: sql 1. 2. 3.
Если нужно единоразово прошерстить все строки Код: sql 1. 2. 3. 4.
Поскольку в MySQL максимальный диапазон ограничен 64 битами, придется использовать два поля по 50 бит. Ну и представить результат в формате, как нужно заказчмку. Извините что долго не отвечал - делал по своему методу. Вот этот ваш код он для чего? 1. Для сортировки 1 миллиарда записей? 2. Для полного решения задачи? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2021, 01:25 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
нужно найти строки имеющие 10 совпадений цифр Итак. Будем считать это исходным. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2021, 01:28 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Добавим даты: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2021, 01:50 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Так лучше. Исходное: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2021, 03:05 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Результат 1 части: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2021, 03:20 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Преобразование 11 совпадений в 10: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2021, 03:38 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
После преобразования 12 в 11 Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2021, 03:44 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Готовая таблица. Остаётся только сортировка: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2021, 03:59 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg Извините что долго не отвечал - делал по своему методу. Вот этот ваш код он для чего? 1. Для сортировки 1 миллиарда записей? 2. Для полного решения задачи? Это решение вашей задачи. Без всяких сортировок. На предыдущей странице обсуждают именно его. С примером. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2021, 15:27 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
crutchmaster Как это будет работать? Текущее решение - из цифр сделать биты, например 1,2,3,4,7 заменить на 0x4F (0100 1111). Потом сделать декартово с побитовом "и", посчитать биты и оставить всё, где получится больше 10. Кстати, записывать справа налево совершенно необязательно. b'11110010' будет нагляднее. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2021, 15:48 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
paver, Если ваше решение, столь простое и наглядное, и оно уже есть, не могли ли вы распечатать его, как сделал я. Используя мои входные данные на этой странице. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2021, 16:26 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg paver, Если ваше решение, столь простое и наглядное, и оно уже есть, не могли ли вы распечатать его, как сделал я. Используя мои входные данные на этой странице. сможем проверить правильность наших решений. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2021, 16:30 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
paver Данные (все 5000 записей) следует перевести в битовые величины длиной в 100 (ну или два раза по 50) битов. И именно так их хранить. Вместо строки "2_12_21_28_36_...", например, нужно получить битовую величину с единицами во 2, 12, 21 и так далее позициях. Получение количества совпадений чисел в 2 произвольных строках A и B - это количество бит в их побитовом произведении: SELECT BIT_COUNT(A & B). Т.е. при ежедневном добавлении новой строки нужно преобразовать ее список чисел в битовый формат (напр, в переменную A), после чего выполнить порядка 5000 произведений, Код: sql 1. 2. 3.
Если нужно единоразово прошерстить все строки Код: sql 1. 2. 3. 4.
Поскольку в MySQL максимальный диапазон ограничен 64 битами, придется использовать два поля по 50 бит. Ну и представить результат в формате, как нужно заказчмку. Вот честно не понимаю. Вы пишите что это полное решение моей задачи. Но вход даёте цифры: "2_12_21_28_36_...", На входе - цифры через пробел и с датой: 22264235 ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2021, 16:51 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg Это представление данных. Смените представление. Это делается один раз. Попробую помедленнее и на примере. У вас есть 2 набора чисел: 1 3 6 9 3 6 7 8 Вам нужно найти количество совпадающих чисел. Это элементарная задача. 1. Меняете представление ваших наборов из символьного строк в битовый, где каждому числу будет соответствовать 1 в позиции, номер которой совпадает с числом. В примере это: 1 3 6 9 -> b'101001001' 3 6 7 8 -> b'001001110' 2. Получаете совпадающие числа путем побитового произведения исходных строк: b'101001001' & b'001001110' -> b'001001000', то есть 3 и 6 3. Количество совпавших чисел (т.е. количество 1 в результирующей строке) получаете с помощью BIT_COUNT() BIT_COUNT(b'101001001' & b'001001110') = 2 Для хранения ваших наборов потребуется поле BINARY(13) (13 x 8 = 104). Можно вместо существующего, можно дополнительно. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2021, 17:02 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
paver, А почему вы упорно не хотите взять 2 строки из моего тестового исходного? Ок. Я специально выделю их для вас: Код: sql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2021, 17:05 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
paver, У меня такое ощущение, что вы пытаетесь рассказать о том, как находить совпадения в 2 строках. Я это решил по простому - загнал цифры в массивы и применил функцию которая ищит совпадения массивов. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2021, 17:07 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2021, 17:12 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg, переведите ваши строки в нули единицы (единицы будут стоять на позиции чисел в ваших строках) Просто никому неохота делать работу за другого. Пример 5 7 8 15 22 23 27 34 37 39 40 41 43 44 50 55 57 58 62 70 (на 5 7 8 15 22 23 27 34 37 39 40 41 43 44 50 55 57 58 62 70 позиции стоЯт единицы) 0000101100000010000001100010000001001011101100000100001011000100000001 и добить нулями до 99 знаков можете проверить, я мог ошибиться ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2021, 17:16 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg, так а ход решения где... как получить всевозможные сочетания по 10 из 20-ти. Мы же в скуэльном форуме. Перевести набор чисел в строку из 0 и 1 И так и хранить можно также сделать функцию - посимвольное сравнение 100 (99) символьной строки. Не надо будет хранить все комбинации по 10 из 20-ти чисел. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2021, 17:21 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg, предлагаю упростить задачу. Пусть будут числа 1..9 и по 4 в строке переводим исходную 1_3_5_7 в нули-единицы 101010100 (справа добиваем нулями до 9-ти символов ) ...да, paver выше уже предлагал упростить... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2021, 17:27 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Alex_Ustinov, В начале, методом сравнения массивов цифр в строке - я вывожу количество совпадений строк: 22264236 Код предоставить не могу. Я ведь его за деньги писал - значит нужно разрешение. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2021, 17:41 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg, Те, где 10 совпадение - получается что готовы к сортировке. Но там ещё есть 11 и 12 совпадений. Вот с ними я разбираюсь в дальнейшем. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2021, 17:44 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Alex_Ustinov, Вы опять, упорно решаете задачу сравнения срок. Повторю: Задача сравнения строк решена мной изначально, путём загона чисел в массивы и применения функции поиска дубликатов. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2021, 17:52 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Код на Перле: Код: php 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2021, 17:53 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg, да это чушь полная...со стороны более чем странно "я не покажу потому что писал за деньги, а вы мне на моих данных покажите ваш код" поэтому предлагают упростить и использовать схематичные данные. если решаете массивами-циклами, то это вроде бы как для другого форума. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2021, 17:59 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Alex_Ustinov, Мне нужно решить задачу, а не искать изыски. Мой код изначально был на Перл с использованием mySQL. Что не так? В конце, я делаю сортировку: select v.* from ( SELECT table_tmp.* , count(1) over(partition by d1) as cnt FROM table_tmp ) as v where cnt > 4; Что не так то? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2021, 18:05 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Alex_Ustinov miltorg, да это чушь полная...со стороны более чем странно "я не покажу потому что писал за деньги, а вы мне на моих данных покажите ваш код " поэтому предлагают упростить и использовать схематичные данные. если решаете массивами-циклами, то это вроде бы как для другого форума. Я не просил код. Я просил решение. Потому, что я видел, что изначально, в качестве исходных берутся не те цифры. Поэтому и так долго на это не обращал внимания. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2021, 18:08 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Но это, изначально решение - не про то - вызвало тут кучу восторгов. Может это и красиво. Может. По мне так - сравнение массивов красивей и проще. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2021, 18:12 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorgне про то про то... от вас требуется перевести ваш набор чисел в 0 и 1, залить в таблицу чтобы никто не увидел код - я его спрятал, а то потом никому его не продать Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
вот решение в общем доступе https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=b3c4ac6316e573c7ecf6facc2139e3dd единственное, что вам необходимо сделать - в связи с тем, что BIT работает с 64 разрядами - ранее было предложено разделить строку из 99 знаков на две части, и делать два сравнения, первые 50 нуликов единиц и оставшиеся. т.е. у вас будет 2 поля STR_BIT1 и STR_BIT2 типа BIT(50) И вот как раз первичную переработку своих данных и сделайте на Перле Бейсике Паскале... на чем угодно вот теперь обоснуйте, почему это решение - "не про то" авторЯ не просил код. Я просил решениеигра слов, решение указали, просто без кода вы не поняли. "Преобразование 11 в 10" и т.д - никому непонятное "решение" ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2021, 19:35 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Люди упорно не видят исходное задание. В исходном задании 20 цифр. 20! Люди упорно не хотят понять - что всё уже сделано. И сделано изначально методом сравнения количества совпадений с помощью массивов - потому что так проще. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2021, 03:16 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Единственное что мне сейчас не понятно - как это всё проверить? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2021, 03:23 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Люди упорно не видят исходное задание. В исходном задании 20 чисел. 20! Примеры меньше двух строк по 20! чисел - даже смотреть не буду. Вот минимально сокращённо-урезанное задание Код: sql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2021, 03:28 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
и что проверять в этих двух строчках? 13 вхождений ссылка https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=6c3ff9e5db126e4f0a55549e161f9004 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2021, 03:53 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg, во второй строке изменено число 41 на 42 после моего копирования получаем 12 совпадений решение https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=aa592d82eff9bb9a198191c602ba2011 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2021, 04:17 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2021, 04:37 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Я не делал никаких двоичных преобразований. Просто использовал специальную функцию поиска дубликатов в массивах. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2021, 04:39 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg, Итак. Мы имеем 12 совпадений. Строку:... Стоп. Но у вас даже нет строки совпадений??? d1 у меня в таблице Нету. Не вижу. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2021, 04:43 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Я не использовал специальную функцию поиска дубликатов в массивах. Как и сами массивы с упорядочением и сортировкой миллиарда строк используется стандартная функция побитового сравнения И + подсчет совпадающих битов. Если вам необходима строка вхождения - доделайте. Всего лишь дописать ф-ю перевода позиции совпадающих битов в десятичное представление. Ссылки на решение выше. Стоп! у вас же даты не в формате MySQL..... так работать не может... Покажите каким запросом вы это получаете? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2021, 05:24 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Alex_Ustinov, Всё доделано и всё работает. И все всё давно уже поняли. Кроме вас. Я с вами разговариваю только потому, что мне нужно чтоб кто то проверил алгоритм моих расчётов. Но вы зациклились на поиске дубликатов строк. Поиск дубликатов строк не вызывает и не вызывал никаких проблем ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2021, 06:25 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Alex_Ustinov, Строка вхождения - это и есть цель, решение задачи. Только строка вхождения 10 из 20, а не 12 из 20 - но этого вы уже 2 страницы - не можете понять. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2021, 06:28 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Alex_Ustinov, авторДаты не в том формате... Это не даты - это строки из исходного файла означающие дату. Заказчик захотел чтоб эти строки оставались неизменными. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2021, 07:18 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg Всё доделано и всё работает. И все всё давно уже поняли. Кроме вас. Я с вами разговариваю только потому, что мне нужно чтоб кто то проверил алгоритм моих расчётов. Но вы зациклились на поиске дубликатов строк. Поиск дубликатов строк не вызывает и не вызывал никаких проблем 1. Все давно поняли, что вы так и не поняли суть предлагаемого вам решения. 2. Ваш алгоритм невозможно проверить ввиду отсутствия его описания 3. Ввиду пункта 1 вы так и не поняли, что никто не предлагает искать дубликаты. Даже слова такого никто не написал. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2021, 08:13 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
paver, вместо "дубликатов строк" - следует читать: "число вхождений в строку". Вы правда это сразу не поняли? Всё. про "вхождения" - я заканчиваю - зря я ковырнул это - ведь видел, что люди совсем не о том разговаривают между собой. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2021, 08:59 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
paver, вместо "дубликатов строк" - следует читать: "дубликатов чисел " Вы правда это сразу не поняли? Всё. про "вхождения" - я заканчиваю - зря я ковырнул это - ведь видел, что люди совсем не о том разговаривают между собой. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2021, 09:02 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg вместо "дубликатов строк" - следует читать: "число вхождений в строку". paver Количество совпавших чисел (т.е. количество 1 в результирующей строке) получаете с помощью BIT_COUNT() BIT_COUNT(b'101001001' & b'001001110') = 2 твой метод на перле будет работать, вот только скорость работы намного медленнее ты сравниваешь строковые значения , а это медленная операция ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2021, 09:16 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
вадя, Почему строковые? Битовые операции будут на порядок (если не два порядка) быстрее, чем поэлементное сравнение двух массивов. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2021, 15:08 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Ares_ekb Почему строковые? Битовые операции будут на порядок (если не два порядка) быстрее, чем поэлементное сравнение двух массивов. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2021, 15:14 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
вадя, Там изначально 5 тысяч строк в файле. 5 тысяч. Пишу в 10-й раз. Нет тут проблемы. Нету. Зачем вы её ищите на ровном месте - мне не понятно. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2021, 15:17 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
вадя, дело не в строковых значениях, дело в том что он ДЛЯ КАЖДОЙ ИЗ 5000 строк строит по комбинаторике всевозможные сочетания 10 чисел из 20 3. затем ищет совпадения GROUP BY + HAVING COUNT()>1 (ну может и не так, может циклует через массивы) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2021, 15:18 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Alex_Ustinov, Нет. НЕ так ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2021, 15:21 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg, 1. Первоначально я ищу количество совпадений больше 9 2. Перерабатываю 11 совпадений в 10 3. Перерабатываю 12 совпадений в 11, а потом в 10. 4. 13 совпадений пока нет, но может и появиться. 5. Сортировка. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2021, 15:25 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg Alex_Ustinov, Всё доделано и всё работает. И все всё давно уже поняли. Кроме вас. Я с вами разговариваю только потому, что мне нужно чтоб кто то проверил алгоритм моих расчётов. Но вы зациклились на поиске дубликатов строк. Поиск дубликатов строк не вызывает и не вызывал никаких проблем Решение вам показано по ссылкам. Осталось дописать функцию перевода позиций "единичек" в десятичный формат. BIT_COUNT() считает количество, а вам нужны позиции. Сделайте хоть что-то сами. BIT_COUNT() = N N - количество необходимых совпадений Все очень просто. Не надо "перерисовывать" (12 в 11) (12 в 10) (9 в 10) или как там у вас Я с вами разговариваЛ только потому, что мне не спалось. И не думал что вы просто специально тупите. Сделайте второй вариант как вам подсказали и проверяйте своё секретное решение с массивами. Ссылки даны. Смотрю на ваш жаргон и думаю что никто вам помогать особо не будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2021, 15:39 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg 1. Первоначально я ищу количество совпадений больше 9 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2021, 16:23 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
воскресные ПЕРЛЫ буквально с 2-х посл страниц У меня практически есть полный код. Вчера я обработал случай при 11 совпадениях в строках. Сегодня обработаю 12 совпадений. 13 совпадений вроде не было вообще. А у вас нет кода. Код предоставить не могу. Я ведь его за деньги писал - значит нужно разрешение. Мне нужно решить задачу, а не искать изыски. Но это, изначально решение - не про то - вызвало тут кучу восторгов. Единственное что мне сейчас не понятно - как это всё проверить? Всё доделано и всё работает. И все всё давно уже поняли. Кроме вас. Единственное что мне сейчас не понятно - как это всё проверить? Примеры меньше двух строк по 20! чисел - даже смотреть не буду. во второй строке изменено число 41 на 42 ... получаем 12 совпадений....Итак. Мы имеем 12 совпадений. Отлично. У меня такой же результат: Но вы зациклились на поиске дубликатов строк. У меня такое ощущение, что вы пытаетесь рассказать о том, как находить совпадения в 2 строках! вот вам решение...вот ссылка BIT_COUNT() = N N - количество необходимых совпадений..... Только строка вхождения 10 из 20, а не 12 из 20 - но этого вы уже 2 страницы - не можете понять. Свой код предоставить не могу. Я ведь его за деньги писал - значит нужно разрешение. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2021, 16:46 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Alex_Ustinov, этот топик создан в пятницу. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2021, 16:51 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
вадя, 2 раз пишу. Там 5 тысяч строк - поэтому никаких тормозов там нет. 5 тысяч строк обработать 1 раз. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2021, 16:51 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg 2 раз пишу. Там 5 тысяч строк - поэтому никаких тормозов там нет. 5 тысяч строк обработать 1 раз. 1 строку сравнить с 4999 строк 2 - с 4998строк 3 - с 4997 ... ..... ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2021, 16:54 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
вадя, упс. А вы и тему не читали. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2021, 16:57 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg упс. А вы и тему не читали. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2021, 16:58 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg, Напишу в 4 раз. Задача полностью решена. Полностью. От начала и до самого конечного конца. Все скорости - меня устраивают. Что я хочу сейчас? - Проверить своё решение. Как? Искусственное добавление строки делал - всё работает правильно и хорошо. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2021, 17:00 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2021, 17:03 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg Напишу в 4 раз. Задача полностью решена. Полностью. От начала и до самого конечного конца. Все скорости - меня устраивают. ты говоришь - проверить своё решение, и говоришь что что я не читал.. добавляешь одну строку - и ищешь совпадение с уже имеющимися... не кажется что у тебя куча противоречий? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2021, 17:04 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg Постановка задачи гордо висит на первой странице. Повторю: ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2021, 17:06 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
mayton, я так глубоко не полез, там вроде было нормальное обсуждение ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2021, 17:06 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg, авторИз каждой строчки берётся 10 цифр и из них делаются не повторяющиеся комбинации: не повторяющиеся с чем первая строка не должна повторяться со 2 по 5000 вторая - с 3 по 5000 так? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2021, 17:09 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2021, 17:09 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg, твоя идея не правильная - надо сравнивать все строки - рекурсивно а это долго, тебе предложили бинарное сравнение ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2021, 17:11 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2021, 17:14 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
вадя miltorg, твоя идея не правильная - надо сравнивать все строки - рекурсивно а это долго, тебе предложили бинарное сравнение можно сократить - убирать уже совпадшие строки - но это переписывать в новый массив это все можно сделать в sql - используя хранимку ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2021, 17:15 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Выложил результат работы 1 части программы - Поиск тех самых дубликатов чисел в стоках. Где они больше 9: 22264236 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2021, 17:17 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg Просили выложить исходную таблицу. Выложил часть таблицы: ddl таблицы (уже выложил - это +) ну и скрипт для заполнения таблицы - тогда будут варианты, а пока тебе предлагают с 4 числами как идею для реализации ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2021, 17:19 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
И там дальше пошаговый результат с выводом каждого шага. То есть всё описано подробнейшим образом. Кто не понял - я не виноват. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2021, 17:19 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg Поиск тех самых дубликатов чисел в стоках. вадя откуда тогда слухи про 1 000 000 000? 1 строку сравнить с 4999 строк 2 - с 4998строк 3 - с 4997 ... ..... ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2021, 17:20 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg, у тебя может совпасть 4999 строка с 5000 строкой ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2021, 17:21 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
вадя, Строки полностью сейчас не совпадают. - максимум 12 совпадений чисел в строке. - Это отображено в примере. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2021, 17:25 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
На сколько я понял - это движения чего-то в чём-то И детали изготавливаются разные. - Поэтому полные совпадения - это брак. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2021, 17:29 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg Строки полностью сейчас не совпадают. - максимум 12 совпадений чисел в строке. - Это отображено в примере. тебе всё равно надо произвести сравнение одно строки со всеми (если в лоб) или так вадя 1 строку сравнить с 4999 строк 2 - с 4998строк 3 - с 4997 ... ..... или так вадя можно сократить - убирать уже совпадшие строки - но это переписывать в новый массив но это если искать совпадение по всем значениям если искать совпадение по части - то надо сравнивать каждую строку со всеми 4999 потому как 9 совпадений может быть частью из совпадений , где совпадают 12 чисел число совпадений при бинарном - есть величина BIT_COUNT() BIT_COUNT(b'101001001' & b'001001110') = 2 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2021, 17:35 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg, тебе нужно произвести 5000*4999 сравнений с подсчётом числа совпадений ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2021, 17:48 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
похоже так и делается, если мы уже не говорим о миллиарде, только вместо BIT_COUNT используется своя функция сравнения строк на вхождение чисел. Цикл 1..99 на вхождение чисел в сравниваемые строки и подсчет (и откладывание) совпадений (тоже можно задать параметром). Имеет право на жизнь. Только что там проверять, если проверяется экспериментальными наборами, причем из любого количество чисел в строках. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2021, 18:10 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Alex_Ustinov mayton, я так глубоко не полез, там вроде было нормальное обсуждение Я не об этом. Пятничные топики часто носят характер развлекательных. Трудовая неделя закончилась. Можно и отдохнуть. Это - давняя традиция которая возникла на скруле еще задолго до того как я создал первый пятничный. Возможно Милторг не имел в виду ничего серъезного. Но все так возбудились... ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2021, 18:37 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg paver, У меня такое ощущение, что вы пытаетесь рассказать о том, как находить совпадения в 2 строках. Я это решил по простому - загнал цифры в массивы и применил функцию которая ищит совпадения массивов. 1. Это не ощущение. Именно это вам и пытаются рассказать. 2. Я это решил по простому - загнал цифры числа в битовые строки и применил битовую операцию, которая показывает совпадения. Я не видел вашего кода поиска совпадений, но очевидно, что он на несколько порядков (!) медленнее битовой операции A & B. BIT_COUNT(A&B) - это и есть мой код. Покажите ваш Это во-первых. А во-вторых, предлагаемое решение - для общего случая. BIT_COUNT просто даст количество совпавших чисел, а отфильтровать нужные строки можно элементарным WHERE BIT_COUNT(A & B) IN (10, 11, 12) (ну или просто >=10). ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2021, 20:51 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
paver, Я ведь писал код. Раз: 22260895 Два: 22264457 И уже 4 раза написал что скорость в данном случае не имеет значения Вы знаете. Я не стану больше с вами разговаривать. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2021, 21:51 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg Что я хочу сейчас? - Проверить своё решение. Как? Решить с битовыми масками. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.01.2021, 04:53 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
mayton Alex_Ustinov mayton, я так глубоко не полез, там вроде было нормальное обсуждение Я не об этом. Пятничные топики часто носят характер развлекательных. Трудовая неделя закончилась. Можно и отдохнуть. Это - давняя традиция которая возникла на скруле еще задолго до того как я создал первый пятничный. Возможно Милторг не имел в виду ничего серъезного. Но все так возбудились... ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2021, 14:55 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Нас ждёт вторая серия. - Заказчик сказал, что лучшая проверка - это генерировать всё подряд и проверять на совпадения. У него правда есть своя идея. - Отгенерированное класть не просто так, и не в базу, а в файлы по первому числу. - Сразу группировать единицы и пр. Начинаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2021, 00:29 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Итак. Я вернулся в начало. 1 мысль: Генерировать буквально по 1 строчке и сразу выдавать готовый результат. 2. Делать как сказал заказчик - ибо заказчик всегда прав. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2021, 00:32 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg У него правда есть своя идея. - Отгенерированное класть не просто так, и не в базу, а в файлы по первому числу. - Сразу группировать единицы и пр. miltorg Начинаю. miltorg 2. Делать как сказал заказчик - ибо заказчик всегда прав. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2021, 04:03 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg Итак. Я вернулся в начало. 1 мысль: Генерировать буквально по 1 строчке и сразу выдавать готовый результат. 2. Делать как сказал заказчик - ибо заказчик всегда прав. Если заказчик просто хочет проверить формулу - то не обязательно генерить все 20 чисел. Может проверить на 5 штуках? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2021, 14:13 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
mayton, это же монолог, ТС купил пивка и ему опять скучно... ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2021, 18:27 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Я вот думаю, что что-то не так в моём переводе из 12 совпадений в 10 Лезут какие то дубликаты. Что я делаю. Хоть я уже про это и писал. Я последовательно удаляю по 1 цифре в 12 совпадений Потом также последовательно удаляю цифры в полученных 11 совпадениях А нужны ли они вообще эти цифры? Ведь я уже сравнивал эти все строки между собой. Это тогда совсем упрощает задачу! ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2021, 22:45 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Сегодня я достиг 5 миллионов записей и оно мне сказало: авторtable is full Странно. Я читал что у mySQL вроде как ограничений нет на число записей. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2021, 05:17 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg, И это инженер с дипломом? Дилетант. Ему форум дал отличное решение с битсетом, бери, пользуйся на здоровье, но нет, не хочу, хочу жрать говно. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2021, 06:47 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
crutchmaster miltorg, Дилетант. Ему форум дал отличное решение с битсетом, бери, пользуйся на здоровье, но нет, не хочу... Он его просто не понял. До сих пор. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2021, 10:28 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Если взять не 10 из 20, а 32 из 64 (регистр). То подсчет удачных комбинаций может затянуться. Я не против битовых операций но КМК надо исследовать на временную сложность. Когда мы дойдем до старших разрядов (62,63 биты) то пауза в ожидании следующей удачной комбинации затянется. Хотелось-бы уйти от вращения битов в регистре и подойти ... ну со стороны неких прямых пермутаций. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2021, 16:37 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
mayton, Не понял. Зачем вращать биты в регистре? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 05:56 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg, Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68.
Проверяй. Наваял левой пяткой за 30 минут на сраном жс то, над чем ты тужишься уже две недели. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 06:55 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
crutchmaster, Можно было заюзать bigint вместо number и делать по 64 бита, но мне влом, да и время правки истекло. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 07:09 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
crutchmaster, Ребят, вы правда к 12 странице до сих пор не поняли задание? Нужно сравнивать 10 цифр. 10!!! И ответ по этим данным я уже публиковал. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 09:19 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 09:24 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg, И не забывайте, что это не исходный файл - а это тестовый файл В исходном файле 5000 строк, а не 10 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 09:27 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
А это что должно у вас получиться в конечном итоге из тестового файла: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 09:39 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
В конечном результате, перед сортировкой - больше 2 миллионов строк. Так что всё это нужно писать в БД. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 09:47 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg В конечном результате, перед сортировкой - больше 2 миллионов строк. Напугал ежа голой жопой. Я на ноде крутил и больше. miltorg Так что всё это нужно писать в БД. Тебе не нужно 2м строк. И сортировки делать не нужно. Коду, что выше это не нужно. Никому это не нужно. Закидываешь свои несчастные 5к строк (да хоть 10М, лишь бы RAM хватило) и вперёд. Если боишься выхлопа можешь сразу его писать в файл. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 10:08 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg В исходном файле 5000 строк, а не 10 Не сильно больше. А это что должно у вас получиться в конечном итоге из тестового файла: А дублировать строки обязательно? miltorg Нужно сравнивать 10 цифр. 10!!! До тебя не доходит, что всё, что больше 10 - это уже и есть решение? Тебе как маленькому надо сделать перестановочки и получить файлик, как у тебя 1 в 1, чтобы начало доходить? Кстати, посмотри вот на это: Код: sql 1.
Тут 10 совпадений. Где у тебя пара 19.08.1966 и 20.08.1966 в результате? Походу ты обосрался со своим кодом. Вот твои исходные данные, если забыл. 22264235 Циферки сам посчитаешь руками. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 10:16 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg, Код: sql 1.
А где 22.08 в исходниках? Что-то его там нету. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 10:21 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
crutchmaster, crutchmaster Проверяй. Ладно, сам проверю. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Со сдвигом ошибся. Код: javascript 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 11:05 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
crutchmaster miltorg Так что всё это нужно писать в БД. Тебе не нужно 2м строк. И сортировки делать не нужно. Коду, что выше это не нужно. Никому это не нужно. Закидываешь свои несчастные 5к строк (да хоть 10М, лишь бы RAM хватило) и вперёд. Если боишься выхлопа можешь сразу его писать в файл. Исходные данные и результат имеет смысл хранить в БД. Тогда при ежедневном добавлении одной исходной записи не нужно перелопачивать "всех со всеми" (25 миллионов сравнений, если что). Сравнить все с последней (5000 сравнений), совпадения дописать в таблицу результатов. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 12:04 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Я думаю оно будет обрабатываться настолько быстро, что смысла в этом будет не очень много. Даже если новые данные умножаешь на старые, а потом дописываешь в конец файла. Всё можно сделать без бд, она тут не нужна - индексы не используются, множественный доступ не используется, выборок нет, обновлений отдельных записей нет. Зачем тут бд? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 12:16 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
тут ТС похоже надо узнать сколько "строк" совпадений, а не кол-во пар совпадений, 1. т.е. хранить в БД надо именно уникальные комбинации из 10 чисел совпадений, а не пары. т.е. на данный момент + GROUP BY "10 чисел" на результат из совпадающих пар 2. для новой 5001 строки ищем пары с накопительной таблицей п.1 ---- 12 лямов записей уже не будет поэтому лучше с БД ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 12:29 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
crutchmaster А дублировать строки обязательно? Да. Так в ТЗ - причём заказчик настаивал на этом пункте. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 12:35 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
и если хранить в бд накопительную таблицу - то индексы ест-но будут использоватся ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 12:36 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
crutchmaster Где у тебя пара 19.08.1966 и 20.08.1966 в результате? раз: 22264236 два: 22264237 три: 22264238 четыре: 22264239 Я с вами не буду больше разговаривать. Вы не видите результат в 4 местах. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 12:41 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg, miltorg Вы не видите результат в 4 местах. А скинул ты что? Сам хоть видел, что скопипастил? 22267376 А это что должно у вас получиться в конечном итоге из тестового файла: ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 12:47 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg Я с вами не буду больше разговаривать. Жс-говнокод работает лучше, чем то, что ты там 2 недели ваял. Конечно ты не будешь больше разговаривать. Какой-то хипстор - ПТУшник уделал инженера с ВО. Возмутительно. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 12:50 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
К тестовому исходному, за это время я добавил ещё одну строку: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
Не какие результаты, кроме как в виде, требуемом заказчиком - больше не анализирую. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 12:51 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg, Ладно, ладно. Я освобожусь, еще кусочек напишу, перестановочки сделаю и мы с тобой всё обсудим. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 13:05 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
crutchmaster, Давай ПТУ! Дерзай ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 13:08 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Ещё усилие - и вы поймёте задание почти полностью тема начата полмесяца назад. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 13:10 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
10 записей сравнить с этими же 10 записями -> меньше 100 сравнений 5000 записей сравнить с - 5000 записей -> меньше 25 000 000 -> меньше 25 миллионов - а это время. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 13:16 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
новая строка - отлично! idid1dtdt1allesXXX12101.08.196621.08.19665-7-8-15-22-23-27-34-37-39-40-441212201.08.196622.08.19665-7-8-15-22-23-27-34-37-39-40113503.08.196605.08.19662-12-21-28-36-50-53-55-59-661031403.08.196614.08.19663-5-24-26-28-50-53-55-59-661031603.08.196616.08.19662-3-5-15-23-28-37-38-50-53-591161806.08.196618.08.196611-15-16-29-32-35-42-43-62-63107907.08.196609.08.19667-8-21-27-30-49-50-53-54-6810102110.08.196621.08.19665-7-23-27-34-45-46-47-52-6410122112.08.196621.08.196623-27-40-44-45-46-47-52-64-6610131713.08.196617.08.19661-5-11-16-20-22-25-26-47-56-7011192019.08.196620.08.19668-15-17-26-35-37-42-44-50-6910212221.08.196622.08.19665-7-8-15-22-23-27-34-37-39-4011будем мерятся простынями! ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 13:48 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Alex_Ustinov, не соответствует требованиям заказчика. Заказчик просил совпадения из 10 чисел, а тут 11 и 12 Заказчик просил количество таких совпадений - такого столбца вообще нет ------------- Результат не рассматриваю. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 13:54 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Заказчик просил вывести оба совпадения в таблицу, а не одно. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 13:57 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg Заказчик просил вывести оба совпадения в таблицу, а не одно. Код: sql 1. 2. 3.
так сделай, если оба вот тебе "только 10" совпадений))) и "оба" idid1dtdt1allesXXX3503.08.196605.08.19662-12-21-28-36-50-53-55-59-661031403.08.196614.08.19663-5-24-26-28-50-53-55-59-66105305.08.196603.08.19662-12-21-28-36-50-53-55-59-661061806.08.196618.08.196611-15-16-29-32-35-42-43-62-63107907.08.196609.08.19667-8-21-27-30-49-50-53-54-68109709.08.196607.08.19667-8-21-27-30-49-50-53-54-6810102110.08.196621.08.19665-7-23-27-34-45-46-47-52-6410122112.08.196621.08.196623-27-40-44-45-46-47-52-64-661014314.08.196603.08.19663-5-24-26-28-50-53-55-59-661018618.08.196606.08.196611-15-16-29-32-35-42-43-62-6310192019.08.196620.08.19668-15-17-26-35-37-42-44-50-6910201920.08.196619.08.19668-15-17-26-35-37-42-44-50-6910211021.08.196610.08.19665-7-23-27-34-45-46-47-52-6410211221.08.196612.08.196623-27-40-44-45-46-47-52-64-6610 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 14:16 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Alex_Ustinov, Заказчик просил количество таких совпадений - такого столбца вообще нет ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 14:18 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg, так сделай GROUP BY alles и GROUP_CONCAT как тебе надо мы в форуме MySQL, а не Просто Треп кто из нас деньги получит? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 14:25 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Alex_Ustinov, у вас неверное решение, но вы этого не видете потому что не доделали задание. Доказательство? 5_7_15_22_23_27_34_37_39_40 - у вас такого вообще нет. А оно повторяется в 3 строках - тоесть это важный искомый результат. Код: sql 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 14:31 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
кстати, совпадений будет по 2 минимум, так как Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 14:31 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg Alex_Ustinov, у вас неверное решение, но вы этого не видете потому что не доделали задание. Доказательство? 5_7_15_22_23_27_34_37_39_40 - у вас такого вообще нет. А оно повторяется в 3 строках - тоесть это важный искомый результат. Код: sql 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 14:32 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Alex_Ustinov, Столбец d1 - 10 чисел. Что не так? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 14:35 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg, почему тогда ты показываешь в 2 строки, если sovpalo 11? надо же в твоей идеологии показывать 11 строк? (из 11 получаем 10 - вычеркиваем по 1 числу 11 раз) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 14:51 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Alex_Ustinov, Sovpalo - оно зачем вам? Я вам показал строку - 5_7_15_22_23_27_34_37_39_40 Её у вас нет. Значит ваше решение не верное. Если будете продолжать претворяться тупым - я перестану с вами разговаривать. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 15:17 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg, ничего себе наглость... а где совпадение 7-8-15-22-23-27-34-37-39-40 (без 5) 5-8-15-22-23-27-34-37-39-40 (без 7) 5-7-15-22-23-27-34-37-39-40 (без 8) 5-7-8-22-23-27-34-37-39-40 (без 15) 5-7-8-15-23-27-34-37-39-40 ..... 5-7-8-15-22-27-34-37-39-40... 5-7-8-15-22-23-34-37-39-40...... 5-7-8-15-22-23-27-37-39-40....... 5-7-8-15-22-23-27-34-39-40........ 5-7-8-15-22-23-27-34-37-40............ ИХ у вас нет. Значит ваше решение не верное. уважаемый ТС, кто из нас притворяется тупым на более 10 страницах? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 15:38 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Alex_Ustinov, Проверил вашу первую строку: есть: 22267376 всё. разговоры с вами прекращаю. - Только решение в требуемом заказчиком виде. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 15:48 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg Alex_Ustinov, Проверил вашу первую строку: есть: 22267376 всё. разговоры с вами прекращаю. - Только решение в требуемом заказчиком виде. 1 22 01.08.1966 22.08.1966 5-7-8-15-22-23-27-34-37-39-40 11 клоунаду пора прекращать в этом форуме. Надо переносить в другой. Ни одного запроса от ТС не видать. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 15:56 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg, с такими базами - сваливать с MySQL/ очевидно... она не для таких задач остальное- жуткое извращение.... ну если так нравиться самообладание...) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 17:21 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
С самого начала надо было описать наиболее полное множество тест-кейсов. И ожидаемые outputs. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 18:11 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg Нас ждёт вторая серия. - Заказчик сказал, что лучшая проверка - это генерировать всё подряд и проверять на совпадения. У него правда есть своя идея. - Отгенерированное класть не просто так, и не в базу, а в файлы по первому числу. - Сразу группировать единицы и пр. Тут... как-то странно. Это изменения к ТЗ? Или здесь заказчик даёт нам ценные указания. Он - разработчик? Он знает как лучше сделать? У меня нет сомнений в части уважения к его желаниям. Но что мы в топике будем обсуждать когда ценное указание нам придёт снова? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 18:28 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg Alex_Ustinov, Проверил вашу первую строку: есть: 22267376 всё. разговоры с вами прекращаю. - Только решение в требуемом заказчиком виде. а где совпадения ?? Код: plsql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 18:31 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
или Код: plsql 1. 2.
и так далее ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 18:47 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Dino_zavr, Приводите к требованиям заказчика ваш вопрос - и тогда сразу станет понятен ответ. Намекну - это таблица - выборка максимальных совпадений. А максимальное там - 3 совпадения. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 18:48 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
У него в самой первой странице было Код: sql 1. 2.
Хромосома - одинаковая. Даты - разные. Группируем. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 18:49 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
mayton У него в самой первой странице было Код: sql 1. 2.
Хромосома - одинаковая. Даты - разные. Группируем. В данном форуме по MySQL. Дано и так далее с Create table и Insert Into что было бы с топиком в форуе с++ если пойти туда и начать строчить SQL выкладки? самый главный вопрос так и не решен - как строить комбинаторику? В MySQL? (далее все очевидно) Где у ТС SQL скрипты для воспроизведения?))) mayton, почему ЭТО здесь? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 19:01 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Alex_Ustinov mayton У него в самой первой странице было Код: sql 1. 2.
Хромосома - одинаковая. Даты - разные. Группируем. В данном форуме по MySQL. Дано и так далее с Create table и Insert Into что было бы с топиком в форуе с++ если пойти туда и начать строчить SQL выкладки? самый главный вопрос так и не решен - как строить комбинаторику? В MySQL? (далее все очевидно) Где у ТС SQL скрипты для воспроизведения?))) mayton, почему ЭТО здесь? Этому топику - место в Программировании. Ну по крайней мере здесь темы MySQL как таковой нету. Здесь вообще - не про базы данных. Базовикам - здесь не интересно. Здесь нечего смотреть. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 19:19 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
mayton, ты же один их модераторов?...) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 19:21 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 19:21 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Alex_Ustinov Где у ТС SQL скрипты для воспроизведения?))) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 19:26 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
что нет? Имя mayton Статус Зарегистрированный участник Модератор форума C++ Модератор форума Сравнение СУБД --- я же не сказал что модератор этого форума ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 19:27 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Alex_Ustinov, я - не модератор MySQL. А непрофильные не могут переносить топики. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 19:39 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Результат. 5 7 8 15 22 23 27 34 37 391.08.196621.08.19661244 7 8 15 22 23 27 34 37 391.08.196621.08.19661244 40 8 15 22 23 27 34 37 391.08.196621.08.19661244 7 40 15 22 23 27 34 37 391.08.196621.08.19661244 7 8 40 22 23 27 34 37 391.08.196621.08.19661244 7 8 15 40 23 27 34 37 391.08.196621.08.19661244 7 8 15 22 40 27 34 37 391.08.196621.08.19661244 7 8 15 22 23 40 34 37 391.08.196621.08.19661244 7 8 15 22 23 27 40 37 391.08.196621.08.19661244 7 8 15 22 23 27 34 40 391.08.196621.08.19661244 7 8 15 22 23 27 34 37 401.08.196621.08.1966125 44 8 15 22 23 27 34 37 391.08.196621.08.1966125 44 40 15 22 23 27 34 37 391.08.196621.08.1966125 44 8 40 22 23 27 34 37 391.08.196621.08.1966125 44 8 15 40 23 27 34 37 391.08.196621.08.1966125 44 8 15 22 40 27 34 37 391.08.196621.08.1966125 44 8 15 22 23 40 34 37 391.08.196621.08.1966125 44 8 15 22 23 27 40 37 391.08.196621.08.1966125 44 8 15 22 23 27 34 40 391.08.196621.08.1966125 44 8 15 22 23 27 34 37 401.08.196621.08.1966125 7 44 15 22 23 27 34 37 391.08.196621.08.1966125 7 44 40 22 23 27 34 37 391.08.196621.08.1966125 7 44 15 40 23 27 34 37 391.08.196621.08.1966125 7 44 15 22 40 27 34 37 391.08.196621.08.1966125 7 44 15 22 23 40 34 37 391.08.196621.08.1966125 7 44 15 22 23 27 40 37 391.08.196621.08.1966125 7 44 15 22 23 27 34 40 391.08.196621.08.1966125 7 44 15 22 23 27 34 37 401.08.196621.08.1966125 7 8 44 22 23 27 34 37 391.08.196621.08.1966125 7 8 44 40 23 27 34 37 391.08.196621.08.1966125 7 8 44 22 40 27 34 37 391.08.196621.08.1966125 7 8 44 22 23 40 34 37 391.08.196621.08.1966125 7 8 44 22 23 27 40 37 391.08.196621.08.1966125 7 8 44 22 23 27 34 40 391.08.196621.08.1966125 7 8 44 22 23 27 34 37 401.08.196621.08.1966125 7 8 15 44 23 27 34 37 391.08.196621.08.1966125 7 8 15 44 40 27 34 37 391.08.196621.08.1966125 7 8 15 44 23 40 34 37 391.08.196621.08.1966125 7 8 15 44 23 27 40 37 391.08.196621.08.1966125 7 8 15 44 23 27 34 40 391.08.196621.08.1966125 7 8 15 44 23 27 34 37 401.08.196621.08.1966125 7 8 15 22 44 27 34 37 391.08.196621.08.1966125 7 8 15 22 44 40 34 37 391.08.196621.08.1966125 7 8 15 22 44 27 40 37 391.08.196621.08.1966125 7 8 15 22 44 27 34 40 391.08.196621.08.1966125 7 8 15 22 44 27 34 37 401.08.196621.08.1966125 7 8 15 22 23 44 34 37 391.08.196621.08.1966125 7 8 15 22 23 44 40 37 391.08.196621.08.1966125 7 8 15 22 23 44 34 40 391.08.196621.08.1966125 7 8 15 22 23 44 34 37 401.08.196621.08.1966125 7 8 15 22 23 27 44 37 391.08.196621.08.1966125 7 8 15 22 23 27 44 40 391.08.196621.08.1966125 7 8 15 22 23 27 44 37 401.08.196621.08.1966125 7 8 15 22 23 27 34 44 391.08.196621.08.1966125 7 8 15 22 23 27 34 44 401.08.196621.08.1966125 7 8 15 22 23 27 34 37 441.08.196621.08.1966125 7 8 15 22 23 27 34 37 391.08.196622.08.19661140 7 8 15 22 23 27 34 37 391.08.196622.08.1966115 40 8 15 22 23 27 34 37 391.08.196622.08.1966115 7 40 15 22 23 27 34 37 391.08.196622.08.1966115 7 8 40 22 23 27 34 37 391.08.196622.08.1966115 7 8 15 40 23 27 34 37 391.08.196622.08.1966115 7 8 15 22 40 27 34 37 391.08.196622.08.1966115 7 8 15 22 23 40 34 37 391.08.196622.08.1966115 7 8 15 22 23 27 40 37 391.08.196622.08.1966115 7 8 15 22 23 27 34 40 391.08.196622.08.1966115 7 8 15 22 23 27 34 37 401.08.196622.08.1966112 12 21 28 36 50 53 55 59 663.08.19665.08.1966103 5 24 26 28 50 53 55 59 663.08.196614.08.1966102 3 5 15 23 28 37 38 50 533.08.196616.08.19661159 3 5 15 23 28 37 38 50 533.08.196616.08.1966112 59 5 15 23 28 37 38 50 533.08.196616.08.1966112 3 59 15 23 28 37 38 50 533.08.196616.08.1966112 3 5 59 23 28 37 38 50 533.08.196616.08.1966112 3 5 15 59 28 37 38 50 533.08.196616.08.1966112 3 5 15 23 59 37 38 50 533.08.196616.08.1966112 3 5 15 23 28 59 38 50 533.08.196616.08.1966112 3 5 15 23 28 37 59 50 533.08.196616.08.1966112 3 5 15 23 28 37 38 59 533.08.196616.08.1966112 3 5 15 23 28 37 38 50 593.08.196616.08.19661111 15 16 29 32 35 42 43 62 636.08.196618.08.1966107 8 21 27 30 49 50 53 54 687.08.19669.08.1966105 7 23 27 34 45 46 47 52 6410.08.196621.08.19661023 27 40 44 45 46 47 52 64 6612.08.196621.08.1966101 5 11 16 20 22 25 26 47 5613.08.196617.08.19661170 5 11 16 20 22 25 26 47 5613.08.196617.08.1966111 70 11 16 20 22 25 26 47 5613.08.196617.08.1966111 5 70 16 20 22 25 26 47 5613.08.196617.08.1966111 5 11 70 20 22 25 26 47 5613.08.196617.08.1966111 5 11 16 70 22 25 26 47 5613.08.196617.08.1966111 5 11 16 20 70 25 26 47 5613.08.196617.08.1966111 5 11 16 20 22 70 26 47 5613.08.196617.08.1966111 5 11 16 20 22 25 70 47 5613.08.196617.08.1966111 5 11 16 20 22 25 26 70 5613.08.196617.08.1966111 5 11 16 20 22 25 26 47 7013.08.196617.08.1966118 15 17 26 35 37 42 44 50 6919.08.196620.08.1966105 7 8 15 22 23 27 34 37 3921.08.196622.08.19661140 7 8 15 22 23 27 34 37 3921.08.196622.08.1966115 40 8 15 22 23 27 34 37 3921.08.196622.08.1966115 7 40 15 22 23 27 34 37 3921.08.196622.08.1966115 7 8 40 22 23 27 34 37 3921.08.196622.08.1966115 7 8 15 40 23 27 34 37 3921.08.196622.08.1966115 7 8 15 22 40 27 34 37 3921.08.196622.08.1966115 7 8 15 22 23 40 34 37 3921.08.196622.08.1966115 7 8 15 22 23 27 40 37 3921.08.196622.08.1966115 7 8 15 22 23 27 34 40 3921.08.196622.08.1966115 7 8 15 22 23 27 34 37 4021.08.196622.08.196611 Код Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132.
Проверяй. Завтра сделаю генератор и мы продолжим. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 20:38 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
crutchmaster, fix итератора: Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39.
Актуальные. 5 7 8 15 22 23 27 34 37 391.08.196621.08.1966125 7 8 15 22 23 27 34 37 391.08.196621.08.19661240 7 8 15 22 23 27 34 37 391.08.196621.08.1966125 40 8 15 22 23 27 34 37 391.08.196621.08.1966125 7 40 15 22 23 27 34 37 391.08.196621.08.1966125 7 8 40 22 23 27 34 37 391.08.196621.08.1966125 7 8 15 40 23 27 34 37 391.08.196621.08.1966125 7 8 15 22 40 27 34 37 391.08.196621.08.1966125 7 8 15 22 23 40 34 37 391.08.196621.08.1966125 7 8 15 22 23 27 40 37 391.08.196621.08.1966125 7 8 15 22 23 27 34 40 391.08.196621.08.1966125 7 8 15 22 23 27 34 37 401.08.196621.08.19661244 7 8 15 22 23 27 34 37 391.08.196621.08.19661244 40 8 15 22 23 27 34 37 391.08.196621.08.19661244 7 40 15 22 23 27 34 37 391.08.196621.08.19661244 7 8 40 22 23 27 34 37 391.08.196621.08.19661244 7 8 15 40 23 27 34 37 391.08.196621.08.19661244 7 8 15 22 40 27 34 37 391.08.196621.08.19661244 7 8 15 22 23 40 34 37 391.08.196621.08.19661244 7 8 15 22 23 27 40 37 391.08.196621.08.19661244 7 8 15 22 23 27 34 40 391.08.196621.08.19661244 7 8 15 22 23 27 34 37 401.08.196621.08.1966125 44 8 15 22 23 27 34 37 391.08.196621.08.1966125 44 40 15 22 23 27 34 37 391.08.196621.08.1966125 44 8 40 22 23 27 34 37 391.08.196621.08.1966125 44 8 15 40 23 27 34 37 391.08.196621.08.1966125 44 8 15 22 40 27 34 37 391.08.196621.08.1966125 44 8 15 22 23 40 34 37 391.08.196621.08.1966125 44 8 15 22 23 27 40 37 391.08.196621.08.1966125 44 8 15 22 23 27 34 40 391.08.196621.08.1966125 44 8 15 22 23 27 34 37 401.08.196621.08.1966125 7 44 15 22 23 27 34 37 391.08.196621.08.1966125 7 44 40 22 23 27 34 37 391.08.196621.08.1966125 7 44 15 40 23 27 34 37 391.08.196621.08.1966125 7 44 15 22 40 27 34 37 391.08.196621.08.1966125 7 44 15 22 23 40 34 37 391.08.196621.08.1966125 7 44 15 22 23 27 40 37 391.08.196621.08.1966125 7 44 15 22 23 27 34 40 391.08.196621.08.1966125 7 44 15 22 23 27 34 37 401.08.196621.08.1966125 7 8 44 22 23 27 34 37 391.08.196621.08.1966125 7 8 44 40 23 27 34 37 391.08.196621.08.1966125 7 8 44 22 40 27 34 37 391.08.196621.08.1966125 7 8 44 22 23 40 34 37 391.08.196621.08.1966125 7 8 44 22 23 27 40 37 391.08.196621.08.1966125 7 8 44 22 23 27 34 40 391.08.196621.08.1966125 7 8 44 22 23 27 34 37 401.08.196621.08.1966125 7 8 15 44 23 27 34 37 391.08.196621.08.1966125 7 8 15 44 40 27 34 37 391.08.196621.08.1966125 7 8 15 44 23 40 34 37 391.08.196621.08.1966125 7 8 15 44 23 27 40 37 391.08.196621.08.1966125 7 8 15 44 23 27 34 40 391.08.196621.08.1966125 7 8 15 44 23 27 34 37 401.08.196621.08.1966125 7 8 15 22 44 27 34 37 391.08.196621.08.1966125 7 8 15 22 44 40 34 37 391.08.196621.08.1966125 7 8 15 22 44 27 40 37 391.08.196621.08.1966125 7 8 15 22 44 27 34 40 391.08.196621.08.1966125 7 8 15 22 44 27 34 37 401.08.196621.08.1966125 7 8 15 22 23 44 34 37 391.08.196621.08.1966125 7 8 15 22 23 44 40 37 391.08.196621.08.1966125 7 8 15 22 23 44 34 40 391.08.196621.08.1966125 7 8 15 22 23 44 34 37 401.08.196621.08.1966125 7 8 15 22 23 27 44 37 391.08.196621.08.1966125 7 8 15 22 23 27 44 40 391.08.196621.08.1966125 7 8 15 22 23 27 44 37 401.08.196621.08.1966125 7 8 15 22 23 27 34 44 391.08.196621.08.1966125 7 8 15 22 23 27 34 44 401.08.196621.08.1966125 7 8 15 22 23 27 34 37 441.08.196621.08.1966125 7 8 15 22 23 27 34 37 391.08.196622.08.1966115 7 8 15 22 23 27 34 37 391.08.196622.08.19661140 7 8 15 22 23 27 34 37 391.08.196622.08.1966115 40 8 15 22 23 27 34 37 391.08.196622.08.1966115 7 40 15 22 23 27 34 37 391.08.196622.08.1966115 7 8 40 22 23 27 34 37 391.08.196622.08.1966115 7 8 15 40 23 27 34 37 391.08.196622.08.1966115 7 8 15 22 40 27 34 37 391.08.196622.08.1966115 7 8 15 22 23 40 34 37 391.08.196622.08.1966115 7 8 15 22 23 27 40 37 391.08.196622.08.1966115 7 8 15 22 23 27 34 40 391.08.196622.08.1966115 7 8 15 22 23 27 34 37 401.08.196622.08.1966112 12 21 28 36 50 53 55 59 663.08.19665.08.1966103 5 24 26 28 50 53 55 59 663.08.196614.08.1966102 3 5 15 23 28 37 38 50 533.08.196616.08.1966112 3 5 15 23 28 37 38 50 533.08.196616.08.19661159 3 5 15 23 28 37 38 50 533.08.196616.08.1966112 59 5 15 23 28 37 38 50 533.08.196616.08.1966112 3 59 15 23 28 37 38 50 533.08.196616.08.1966112 3 5 59 23 28 37 38 50 533.08.196616.08.1966112 3 5 15 59 28 37 38 50 533.08.196616.08.1966112 3 5 15 23 59 37 38 50 533.08.196616.08.1966112 3 5 15 23 28 59 38 50 533.08.196616.08.1966112 3 5 15 23 28 37 59 50 533.08.196616.08.1966112 3 5 15 23 28 37 38 59 533.08.196616.08.1966112 3 5 15 23 28 37 38 50 593.08.196616.08.19661111 15 16 29 32 35 42 43 62 636.08.196618.08.1966107 8 21 27 30 49 50 53 54 687.08.19669.08.1966105 7 23 27 34 45 46 47 52 6410.08.196621.08.19661023 27 40 44 45 46 47 52 64 6612.08.196621.08.1966101 5 11 16 20 22 25 26 47 5613.08.196617.08.1966111 5 11 16 20 22 25 26 47 5613.08.196617.08.19661170 5 11 16 20 22 25 26 47 5613.08.196617.08.1966111 70 11 16 20 22 25 26 47 5613.08.196617.08.1966111 5 70 16 20 22 25 26 47 5613.08.196617.08.1966111 5 11 70 20 22 25 26 47 5613.08.196617.08.1966111 5 11 16 70 22 25 26 47 5613.08.196617.08.1966111 5 11 16 20 70 25 26 47 5613.08.196617.08.1966111 5 11 16 20 22 70 26 47 5613.08.196617.08.1966111 5 11 16 20 22 25 70 47 5613.08.196617.08.1966111 5 11 16 20 22 25 26 70 5613.08.196617.08.1966111 5 11 16 20 22 25 26 47 7013.08.196617.08.1966118 15 17 26 35 37 42 44 50 6919.08.196620.08.1966105 7 8 15 22 23 27 34 37 3921.08.196622.08.1966115 7 8 15 22 23 27 34 37 3921.08.196622.08.19661140 7 8 15 22 23 27 34 37 3921.08.196622.08.1966115 40 8 15 22 23 27 34 37 3921.08.196622.08.1966115 7 40 15 22 23 27 34 37 3921.08.196622.08.1966115 7 8 40 22 23 27 34 37 3921.08.196622.08.1966115 7 8 15 40 23 27 34 37 3921.08.196622.08.1966115 7 8 15 22 40 27 34 37 3921.08.196622.08.1966115 7 8 15 22 23 40 34 37 3921.08.196622.08.1966115 7 8 15 22 23 27 40 37 3921.08.196622.08.1966115 7 8 15 22 23 27 34 40 3921.08.196622.08.1966115 7 8 15 22 23 27 34 37 4021.08.196622.08.196611 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 20:59 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Я с вас фигею господа. Вам реально больше не чем заняться? Может Вы тогда и нам на фирму пару запросов пооптимизируете, а то отчетик как-то долго готовиться начал .. минут 10. :) Ладно, я понимаю ещё помочь, подсказать челу. Особенно с интересной задачей, поправить ЕГО решение, показать КУДА стоит смотреть .. а тут? Какие в жопу "совпадения" и "заказчик хочет только так и не иначе"? Хочет - пусть платит. Не, я ТАК ни умею.. даже уже интересно чем тут кончится: найдется желающий заплатить ТС-у за ЕГО решение? :D ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 22:18 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Arhat109, Ахаха) тихо..... ))) (это анализ английской лотереи "10 из 20" начиная с 1966 года) ё-заказчик!Приводите к требованиям заказчика ваш вопрос - и тогда сразу станет понятен ответ. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 22:28 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
crutchmaster, Я один не увидел количества совпадений? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 22:43 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Давайте отдельным топиком поднимем генерацию k-permutations-of-n. Это не будет тематически связано с задачками Милторга. Это - другая постановка где мы просто поищем быстрые алгоритмы генерации. На С++, Golang и прочих быстрых компилируемых языках. С бенчмарками и исходниками в качестве доказательства авторства. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 22:57 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
mayton, Ну а почему бы вам не решить полностью мою задачу? Для всех 5 тысяч строк из текстового файла, vx.txt - это вход А на выходе - строки с максимальным числом совпадений. Вы ведь говорите что это чрезвычайно просто. И не ресурсоёмко. И БД не нужно. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 23:33 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg мою задачувсе и решают твою задачу и решили. Почему бы тебе не обработать битовое решение в виде как требует твой заказчик? Т.е. осталось из 11,12 совпадений добавить по 11, 12 строк с 10-ю совпадениями кто сказал что БД не нужно? БД нужно, 1. потому что данные ежедневные, необходимо хранить предыдущие комбинации, чтобы не генерить каждый день вчерашнее. 2. потому что там держим и вид "заказчика" и битовый и используем ф-ю для сравнения ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2021, 00:54 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Вид в котором можно делать комбинаторику в SQL - явно не "строка" а ...таблица По-моему где-то выше предлагали что-то похожее таблицаddt n5 01.08.19667 01.08.19668 01.08.196615 01.08.196622 01.08.196623 01.08.196627 01.08.196634 01.08.196637 01.08.196639 01.08.196640 01.08.196641 01.08.196643 01.08.196644 01.08.196650 01.08.196655 01.08.196657 01.08.196658 01.08.196662 01.08.196670 01.08.1966 и дал бы ты данные в виде SQL сразу - неделю бы не копались SQL кодище набора циферек на 1966-08-01) Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2021, 01:08 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
теперь самое главное - генерация комбинаций 10 из 20 должно получиться 20!/((20-10)!*10!)=184 756 вариантов (выше уже упоминали) на SQL, все "влоб", ИЗЫСКИ не для нас Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25.
кстати innodb_buffer_pool_size лучше поставить >1G это лишь пример для строки 1. но я так вижу что первая строка в комбинациях нам не нужна теперь надо отработать "механику телодвижений" - что и зачем (в какой последовательности) делаем. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2021, 02:23 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Alex_Ustinov, И откуда только 200 тысяч? Вы ведь говорили что всё просто. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2021, 03:13 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg, это не решение, это вариант построения комбинаций 10 чисел из 20 я говорил что все просто в вашем методе? запямотовал... как сделать просто - выше все показано. это по вашему пути идем (циклы, "массивы") да, и что здесь сложного? 184756 - наука комбинаторика 10 из 20, заметьте - это только для одной "строки 20 чисел", т.е. для 1-го дня для каждой новой "строки чисел" будем строить всевозможные 10-ки и сравнивать с уже имеющимися "строками 20-ти чисел " на вхождение. 1. Вариант держать 184тыщ для каждого дня я думаю не подходит, хотя решение "влоб" - самое простое - именно такое. накопленную вариационную таблицу за 5000 тыс дней (х184тыщ=) джойним с таблицей нового 5001 дня 184тыщ на совпадения и кладем машину в вечный сон 2. поэтому второй вариант -итерационный - первый день записали строку 1 второй день - построили 184тыщ комбинаций и проверили на вхождение в 1-ю строку, результат скинули в накопительную табличку 3 день - построили 184тыщ комбинаций и проверили на вхождение в 1-ю и 2 строку , результат скинули в накопительную табличку, обработали варианты вхождений ...... 5001 день - построили 184тыщ комбинаций нового дня и проверили вхождение в 5000 "строк из 20 чисел" (Ура! вот он МИЛЛИАРД! 5тыщ Х 184тыщ) результат скинули в накопительную табличку, обработали варианты вхождений какой выберем способ?) мне кажется все просто, хотя у меня бессоница, я мог напутать насчет простоты и в циферках ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2021, 05:03 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Alex_Ustinov, Прошло полмесяца, а он всё никак не выберет способ решения для "простенькой задачи" ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2021, 05:19 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg, прошла неделя, или вы уже по чесноку полмесяца решаете-проверяете? Прискорбно... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2021, 05:53 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
Arhat109 Я с вас фигею господа. Вам реально больше не чем заняться? Дело было в пятницу. Что бы и не решить ПТУшную лабу. Он две недели уже пыжится, давит из себя, сервак насилует своим говнокодом. Жалко смотреть. Arhat109 Вы тогда и нам на фирму пару запросов пооптимизируете, а то отчетик как-то долго готовиться начал .. минут 10. Так скидывай, может что кто и подскажет дельного. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2021, 16:45 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
miltorg, Вот так, легко и не принужденно, делается нормализированный словарь вместо выхлопа говна, который хочет твой заказчик. Из размера набор дат сам посчитаешь своё cnt, я понятие не имею, какое тебе надо. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Но суть не в этом. Я сгенерил эти твои 5к записей и сей, не слишком хороший, код отработал за 18 секунд на затычке Код: sql 1.
сожрав всего 70 мб памяти. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2021, 21:17 |
|
Как отсортировать 1 миллиард записей?
|
|||
---|---|---|---|
#18+
crutchmaster, Где то на 4 странице я написал что задача полностью решена - но человек никак не может успокоиться. Код ваш не смотрел. Потому что начиная с 4 страницы я прошу только решения-ответ в виде который требует заказчик. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2021, 21:23 |
|
|
start [/forum/topic.php?all=1&fid=47&tid=1828220]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
182ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
327ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 563ms |
0 / 0 |