Возможно ли гибкое выставление приоритета запросов в MySQL?

Предположим есть mysql сервер, которым пользуется некоторое количество юзеров. И время выполнения определенных запросов (конкретного юзера или с участием конкретной таблицы) более важно, чем время выполнения других.
Нет ли какого способа приоритезировать выполнение запросов одного пользователя или на одной базе данных в ущерб остальным? (Например задерживая выполнение остальных запросов до той поры пока не выполнится более приоритетный).
Или я неправильно подхожу к даной задаче? Дайте тогда ссылку на мануал, проясняющий поведение mysql в случае выполнения пачки запросов одновременно. Как я понимаю, что если один запрос предположим требует 0.5 секунд для выполнения (сортировка, join, дисковые io etc, даже с учетом query_cache) и второй 0.7 секунд на незагруженной БД - то запустив их одновременно, они оба выполнятся за более долгое время. И если мы считаем что один из них более важен, то было бы очевидно отложить второй до момента выполнения первого.
Я вижу возможность реализовать это либо написав патч для mysql, либо с помощью специальной прокси, которая на основе синтаксиса запроса и конфига будет определять его приоритет и либо отправлять запрос напрямую в mysql либо задерживать до выполнения более приоритетного.
Подскажите пожалуйста, есть ли уже такие реализации, либо к данной задаче нужно подходить не так?
  • Вопрос задан
  • 2860 просмотров
Пригласить эксперта
Ответы на вопрос 2
opium
@opium
Просто люблю качественно работать
на не нагруженной бд они выполняться одновременно и скорее всего за теже 0.5 и 0.7 если конечно ваши запросы не вызывают локов
а так ложите запросы в очередь любую и сами выделяйте из неё по своим приоритетам что выполнять раньше что позже.
Ответ написан
Комментировать
begemot_sun
@begemot_sun
Программист в душе.
Все подключения (треды) равномерно конкурирую за ресурсы сервера. Т.о. чтобы обработать важные запросы, нужно как-то синхронизировать ваш функционал, чтобы он "подождал" с менее приоритетными запросами.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы