|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
Подфиксил нумерацию. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
Андрон. Тестируй. Туды ево в качель... ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2021, 18:07 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
mayton, Что это? Первый проход? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2021, 18:13 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
Это конец. В моём алгоритме больше нет проходов. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2021, 18:16 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
mayton, Если это решение - ещё раз пересмотрите пример решения: 10 чисел | строки в которых они встречаются | ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2021, 18:21 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
mayton, верно. Есть там 17 вхождений"id1""id2""strin""XXX""3332""3338""3 5 7 9 11 17 20 22 23 24 38 39 44 46 50 52 63""17""760""2616""3 4 7 13 17 18 19 25 32 36 41 42 64 76""14""3192""4827""3 20 21 22 26 28 30 36 38 49 53 61 62 79""14""3199""3587""2 3 4 5 22 26 28 34 46 50 53 55 67 79""14""531""2093""11 13 24 31 34 39 50 54 56 58 62 69 71 75""14""982""2950""10 17 28 33 34 35 40 42 51 69 73 75 77 79""14""160""2504""1 4 10 12 16 26 30 32 38 42 44 48 69 72""14""1697""1988""9 22 28 33 35 51 63 66 67 69 73 75 77""13" теперь правильный гроуп бай по "совпадению" и получим 3332-3333-3334-3338 3 5 7 9 11 17 20 22 23 24 4 для ответа разворачиваем 3 5 7 9 11 17 20 22 23 24 в 10-ки ( здесь одна) и добавляем слова ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2021, 18:23 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
miltorg mayton, Если это решение - ещё раз пересмотрите пример решения: 10 чисел | строки в которых они встречаются | Дрон. Андрон. Стопы-стопы. Послушай сюда. Я не делаю твоё задание. Твоё задание - это проиндексировать вселенную. А я тебе дал ИНСТРУМЕНТ как создать структуру данных которая ПРЕДСТАВЛЯЕТ индексированную вселенную. Ферштейн? При этом я спасён от комбинаторного взрыва. У меня формула с факториалом сводится просто к формуле с квадратом. Соединения пар всех хромосом. В перспективе - я экономлю место на диске. Моя структура данных - компактнее. Зуб даю. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2021, 18:23 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
mayton, А мне нужны решения. С этими персонажами Тема становится скучна. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2021, 18:28 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
Алекс Устинов. Что думаешь? Имеет право на жизнь такой метод? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2021, 18:29 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
mayton, я таким и считаю, только в MySQL через битовое сравнение. Т.е. также получаю пары с совпадениями, (заумно - пересечение множеств, автор так и делал сначала в Perl) группирую по вхождению строки и все. Максимальное кол-во вхождений и будет ответом. Неважно - совпало в максимуме 10 или 12. Это будет РЕШЕНИЕМ. В итоге задача решена еще в прошлом топике, когда Paver предложил такой вариант. Автору нужен код, поэтому здесь такая котовасия, все это читалось с самого начала рядом попытка кусочного получения кода))) Как получить разряды установленных единиц? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2021, 18:43 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
miltorg, Таблица - 1 проход: 64 тысячи записей Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2021, 18:46 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
отлично, 22276747 первую стадию сделали. Теперь надо правильно группирнуть с GROUP_CONCAT и не держите STR в таком виде, дальнейшая обработка неудобна лучше так и оставьте STR1 и STR2 чтобы можно было схлопнуть по DL допустим вот так Код: sql 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2021, 18:49 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
это конечно можно поправить Код: sql 1.
нам надо вообще то максимальное число строк в группировке еще один шаг и будет решение, не прошло и 2 месяца ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2021, 18:59 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
Все выкладываю. Берите. Пользуйтесь. Работает 1.5 секунды на моём железе. Это при том что JVM - холодная на таком старте. Это работающий и самодостаточный код. Нужна Java-11 и maven сборщик для сборки с сорцов. Бинарь я тоже приложу чтоб сразу запускать. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2021, 19:04 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
И бинарь. Образец запуска - в исходниках в "go"-файле. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2021, 19:05 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
miltorg miltorg, Поставил обсчитывать 10-ку. Через 50 мин - ббудет результат. 10 - считается на чистом sql - 3 минуты максимум. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2021, 19:51 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
__Avenger__ miltorg miltorg, Поставил обсчитывать 10-ку. Через 50 мин - ббудет результат. 10 - считается на чистом sql - 3 минуты максимум. Правда 112 ядер и 1 ТераБайт оперативки. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2021, 19:54 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
Кстати, да, ваш метод с битами похоже работает. Просто "3 5 7 9 11 17 20 22 23 24" это плохой пример для демонстрации, потому что он появляется только без пропусков: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
А вот хороший пример (если его находит, то скорее всего правильно работает): Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Но как это реализовать на SQL - разум пасует. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2021, 20:03 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
miltorg miltorg, Таблица - 1 проход: 64 тысячи записей Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Запрос с заполнением данных и расчетом, без всяких промежуточных расчетов: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Выполнение 1 сек. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2021, 20:24 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
А потом вторым запросом с 10 join сформировать все перечисления из 10 чисел и сгруппировать, вот и вся задача. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2021, 20:27 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
__Avenger__, не, немного не так. Надо найти строки в которые входят 10 чисел, по другому - один набор из 10-ти чисел должен входить во все найденные строки ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2021, 20:41 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
Alex_Ustinov __Avenger__, не, немного не так. Надо найти строки в которые входят 10 чисел, по другому - один набор из 10-ти чисел должен входить во все найденные строки Ну так это и есть группировка по 10 числам (набору). А в агрегацию - список дат. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2021, 20:54 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
__Avenger__ Alex_Ustinov __Avenger__, не, немного не так. Надо найти строки в которые входят 10 чисел, по другому - один набор из 10-ти чисел должен входить во все найденные строки Ну так это и есть группировка по 10 числам (набору). А в агрегацию - список дат. Вот ответ: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
3 минуты все затраты на все. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2021, 21:01 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
__Avenger__, Тихо-тихо, боясь спугнуть: - Ура... У нас есть ответ? А на mySQL это получится? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2021, 21:15 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
miltorg __Avenger__, Тихо-тихо, боясь спугнуть: - Ура... У нас есть ответ? А на mySQL это получится? Конечно. Там же примитивные запросы без всяких bit_count. Только join с группировкой и все!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2021, 21:16 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
__Avenger__, ну это если все строки совпадений разложить по 10 то да а из таблицы после 1-го прохода можно группирнуть по строке вхождений взять максимальный каунт, в данном случае максимум и будет на строке 3 5 7 9 11 17 20 22 23 24 (это так получиось у ТС в этом примере что строка из 10) в предыдущих его данных было 5 строк совпадений из 12 чисел (в итоге в ответе 66 строк по 10 чисел в ответе) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2021, 21:16 |
|
|
start [/forum/topic.php?fid=47&msg=40042892&tid=1828188]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
157ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
64ms |
get tp. blocked users: |
1ms |
others: | 253ms |
total: | 521ms |
0 / 0 |