и тяжелые.
Можно ли сделать так?
1) на частые запросы поставить лимит 1 секунду
2) на редкие поставить 5 минут.
Передавать это в параметрах хранимки.
Или вообще как лучше решить? Не работает БД быстро, пусть еще сильнее не загружают
проще запускать разные запросы от разных пользователей, и прописать им разные настройки
те реплика должна быть в любом плюс-минус прод проекте адекватном. Что с ней?
а что будет с той стороной,если за 1 секунду запрос вдруг не выполнился? Вал ошибок?
Передавать таймаут параметром беспоезно, потому что он начинает тикать сразу, и в процедуре его не увеличишь. Вроде бы. Можно изменить таймаут сессии отдельным запросом (перевести сессию в режим "аналитики", потом обратно). Можно, как уже советовали, вообще под другим пользователем другой тип нагрузки пускать. Таймаут 1 сек — не то, что вам нужно: очень сложно на клиенте их корректно обработать. Таймаут не должен быть штатной ситуацией, это механизм на случай бага. Переформулирую вашу задачу: нужно придумать универсальную метрику перегрузки БД, получать её из БД дёшево, и когда загрузка выше Х, перестаёт работать функционал А (пользователь нажимает кнопку — "база перегружена, отчёты делать нельзя" — в БД запросов не посылается!), при этом функционал Б продолжает работать. Интересная задача, я бы тоже послушал...
Обсуждают сегодня