|  #внутренности_фанфикса #исправление_ошибки Нашел наиболее вероятную причину, почему сайт притормаживал в полночь. В 00:02 запускается скрипт, который обновляет статистику фандомов (в энциклопедию когда заходите, там некоторые строки статистики обновляются только раз в сутки). Вот в этом обновлении статистики у меня был написан довольно сложный запрос, для выполнения которого БД анализировала 75 миллионов строк. Сегодня ночью этот запрос выполнялся 52 секунды, пока он выполнялся БД могла тормозить на остальные запросы и ещё минуту-две после этого. Переписал весь скрипт, теперь он посылает всего один не очень тяжелый запрос, потом в цикле считает данные по фандомам и обновляет только те фандомы, где цифры поменялись. В тестовом прогоне получилось гораздо быстрее, чем предыдущая версия. Примечательно, что этот скрипт я уже оптимизировал. Самая первая версия всё делала за счет одного запроса в БД. Сейчас я прикидываю, что тот запрос должен был пройтись примерно по 250 миллионам строк. В прошлый раз я заменил этот супер-тяжелый запрос на просто тяжелый + цикл по одному запросу на обновление каждого фандома. Получилось ~1800 запросов вместо одного, но это работало быстрее и меньше грузило сервер, чем один супер-тяжелый запрос. Сейчас я написал один совсем не тяжелый запрос (просматривает 48 тысяч строк), затем идёт цикл по этим же 48 тысячам строк, а потом примерно 700-800 запросов на обновление данных в БД. Тестовый прогон скрипта выполнился менее чем за две секунды, что для скрипта, выполняющегося один раз в сутки, нормально. А запрос на вывод данных вообще занимает всего несколько десятков микросекунд, то есть БД не блокируется, другим запросам этот скрипт не мешает. 14 января 2021 18 | 
|  | Jinger Beer Онлайн | 
| Ещё глянь, что может в три ночи запускаться, зависает наглухо на несколько минут. | |
|  | ReFeRy Онлайн | 
| Jinger Beer Почти на час. Там бэкап всей базы. Я сейчас думаю об организации репликации БД и тогда можно будет бэкапить реплику, а не мастер-базу. Но это не самая простая штука, учитывая, что я с этим никогда не имел ещё дел. | |
|  | Jinger Beer Онлайн | 
| ReFeRy А, ну это нормально. Трабл устроенный специально, уже не трабл, а фича. | |
|  | |
| репликация на mysql вроде не оч сложная можно за пару дней разобраться | |
|  | ReFeRy Онлайн | 
| ДНИЩE--ЫЫЫЫ Да. Выглядит всё не сложно. надо взять и сделать :) | |