|
Как отсортировать 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 |
|
|
start [/forum/topic.php?fid=47&msg=40034308&tid=1828220]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
151ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
others: | 299ms |
total: | 551ms |
0 / 0 |