|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
Alex_Ustinov, а пробовал таблицу в MyISAM переключить? Будет быстрее вставка или выборка? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2021, 12:35 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
crutchmaster, ну не я же вцепился в БД) о Перле ничего не скажу, я Перла не знаю совершенно. Можно там хранить данные как в БД? В БД мы можем хранить сравнительные пары. Для каждой новой строки добавляем пары только для новой строки. Это будет продолжительное время недолгой операцией. Поэтому нет смысла засовывать сразу в память всю таблицу пар. Все это наполнение - первичное, "завтра" его делать не надо. Весь затык - в последнем "свертывании". ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2021, 12:45 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
mayton Будет быстрее вставка или выборка? Раза в 2 будет быстрее, кмк. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2021, 12:45 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
mayton Alex_Ustinov, а пробовал таблицу в MyISAM переключить? Будет быстрее вставка или выборка? выше описал, что в данной задаче - это накопительная функция Выборка большая, вопрос в том где эти данные обабатывает MySQL. ворочает в памяти или кидает в темпы. Я не спец в тюнинге. Может позже попробую в MyISAM. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2021, 12:50 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
Alex_Ustinov Можно там хранить данные как в БД? Там не надо их хранить. Есть словарь - это типа таблица с ключом. Всё, больше ничего для этой задачи не надо. Alex_Ustinov Поэтому нет смысла засовывать сразу в память всю таблицу пар Пары это, где посчитали сколько совпало цифр? Она не большая получается и в память должна влазить полностью. Alex_Ustinov Весь затык - в последнем "свертывании". "Свёртывание", если это то, про что я думаю, делается проще. У нас уже есть пары и набор совпавших чисел. Этот набор скидываем в комбинаторную функцию, которая выдаёт нам n наборов по 10 чисел. Каждый набор - это ключ. Добавляем этот ключ в словарь вместе с парой дат. Всё. Если надо в другом виде - развёртываем словарь в таблицу, где будет пара дат (или еще чего угодно) и ключ-последовательность. Когда начнёт не влазить в память, придётся прыгать с запросами и кэшами, но это произойдёт еще не скоро. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2021, 12:51 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
crutchmaster, авторПары это, где посчитали сколько совпало цифр? Она не большая получается и в память должна влазить полностью.да, это основная рабочая таблица в данном варианте решения ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2021, 12:54 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
Alex_Ustinov, Я вообще тащусь со всей этой истории. Андрейка взял заказ за 100 евро, сделать не может, а весь форум вокруг него бегает, пытается решить простую задачу изначально проблемным способом, от которого задача становится неподъёмной. Будут лишние сто евро, тоже закажу у него что-нибудь. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2021, 12:56 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
Alex_Ustinov да, это основная рабочая таблица в данном варианте решения Сколько там записей выходит с теми данными, которые он прислал? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2021, 12:57 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
miltorg Так у вас есть решение? У меня есть решение уже две недели как. Да что это меняет. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2021, 12:59 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
crutchmaster, Есть идея как изящно на Оракле сделать вторую часть. Поиск групп. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2021, 13:07 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
mayton Есть идея как изящно на Оракле сделать вторую часть. Поиск групп. Я даже думать про это боюсь. Как только речь заходит о выборках сложнее Код: sql 1.
У меня начинает болеть голова и охота прилечь. А как там сделать через поиск групп? Нам же надо сделать перестановки, для этого надо какую-то функцию пилить (по идее можно через pipeline функции). Без перестановок будет всё ооочень медленно, оракл отрубит поддержку к тому времени и база самопроизвольно вырубится. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2021, 13:12 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
Alex_Ustinov crutchmaster, авторПары это, где посчитали сколько совпало цифр? Она не большая получается и в память должна влазить полностью. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2021, 13:13 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
crutchmaster mayton Есть идея как изящно на Оракле сделать вторую часть. Поиск групп. Я даже думать про это боюсь. Как только речь заходит о выборках сложнее Код: sql 1.
У меня начинает болеть голова и охота прилечь. А как там сделать через поиск групп? Нам же надо сделать перестановки, для этого надо какую-то функцию пилить. Без перестановок будет всё ооочень медленно, оракл отрубит поддержку к тому времени и база самопроизвольно вырубится. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2021, 13:15 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
Alex_Ustinov какие перестановки? этот этап пройден через побитовое сравнение Nyet. После побитового у нас только пары записей в которых совпало больше n чисел, дальше из этих n чисел надо делать все уникальные выборки по k чисел. А потом уже группировать эти выборки и считать сколько пар туда попало и каких. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2021, 13:17 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
Alex_Ustinov, Ну она сама влезет. А для перестановок уже что-то придётся мутить, возможно. Хотя не факт. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2021, 13:20 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
crutchmaster mayton Есть идея как изящно на Оракле сделать вторую часть. Поиск групп. Я даже думать про это боюсь. Как только речь заходит о выборках сложнее Код: sql 1.
У меня начинает болеть голова и охота прилечь. А как там сделать через поиск групп? Нам же надо сделать перестановки, для этого надо какую-то функцию пилить (по идее можно через pipeline функции). Без перестановок будет всё ооочень медленно, оракл отрубит поддержку к тому времени и база самопроизвольно вырубится. Вот. Приколись. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Далее сюда надо влить либо результат с МайСкл. Либо результат с моего репорта в формате *.json5 образцы которого я прикладывал. У кого есть поднятый инстанс Оракла? Проверте pls. Здесь важно чтоб оптимизатор внутри плана указал что индексы активировались. В ораклах такие штуки эффективны как раз чем больше полей с низкой кардинальностью в WHERE - тем лучше. Тем биткартовый индекс эффективнее. Код: sql 1.
Далее одним простым запросом мы ищем мета-кластер который покроет все суб-кластеры и выгребем все билетики в полях List. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2021, 13:24 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
crutchmaster Alex_Ustinov какие перестановки? этот этап пройден через побитовое сравнение Nyet. После побитового у нас только пары записей в которых совпало больше n чисел, дальше из этих n чисел надо делать все уникальные выборки по k чисел. А потом уже группировать эти выборки и считать сколько пар туда попало и каких. 1. Получили пары совпадений из 8-ми и выше 2. далее я делаю гроуп бай по строке совпадения. 3. Допустим получили максимум совпадений в 9-ти чисельной строке. 4. Суть в том что и для 8-ми и для 9-ти чисельного совпадения максимальное кол-во пересечений будет именно в этой строках. именно полученную 9-ку надо разложить в 8-ку т.е. у меня операция перестановок нужна только при формировании ОТВЕТА Поэтому я не раскручиваю сразу все пары в нужные 8-ки на этапе (1.), это достаточно сделать после этапа (3) Т.е. самым накладным у меня является - гроуп бай. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2021, 13:41 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
надо пробовать в PostgreSQL там GROUP BY должен по другому или назовем по другому - надо оптимизировать GROUP BY ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2021, 13:43 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
Alex_Ustinov надо пробовать в PostgreSQL там GROUP BY должен по другому или назовем по другому - надо оптимизировать GROUP BY Дык чтоб оптимизировать надо знать куда двигаться. Покажи какой был план в MySQL. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2021, 13:59 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
crutchmasterЭтот набор скидываем в комбинаторную функцию, которая выдаёт нам n наборов по 10 чисел. я бы назвал это решением "влоб" (разложением на конечные наборы) на втором этапе, теоретически это же очень много. Допустим ищем не 10 а 7 или 6 чисел. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2021, 14:09 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
mayton, "id""select_type""table""partitions""type""possible_keys""key""key_len""ref""rows""filtered""Extra""1""PRIMARY""<derived2>"null"ALL"nullnullnullnull"4647356""1000""Using temporary; Using filesort""2""DERIVED""o"null"ref""IDX_otvet_XXX""IDX_otvet_XXX""5""const""2323678""1000"null"3""UNION""o"null"ref""IDX_otvet_XXX""IDX_otvet_XXX""5""const""2323678""1000"nullnull"UNION RESULT""<union23>"null"ALL"nullnullnullnullnullnull"Using temporary" обычный план ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2021, 14:17 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
Блин... а че оно в виде дерева не показывается? Как в Ораклах или Постгресах. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2021, 14:27 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
Не-по-нятненко... А если заменить на Код: sql 1. 2. 3. 4. 5. 6. 7.
Стоимость понижатеся? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2021, 14:40 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
mayton, конечно просто UNION это DISTINCT ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2021, 14:52 |
|
|
start [/forum/topic.php?fid=47&msg=40043257&tid=1828188]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
161ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 272ms |
0 / 0 |