Как дросселировать или приоритетировать запрос в MySQL
-
01-10-2019 - |
Вопрос
Есть ли в любом случае, чтобы приоритетировать или дрочить запрос вообще в MySQL?
Я DBA на сервере, который видит много неоптимизированных запросов на сервер, и они просто разрушают процессор. Я смотрю на дросселирование некоторых пользователей, которые ударили в базу данных в плохой моде.
Разъяснение:
Я понимаю, что у MySQL есть сооружения, встроенные в ограничение количества запросов, соединений и т. Д. Но это не на самом деле вопрос, это то, что один раз в голубой луне пользователь отправит неотпечатываемый запрос, и мне нужно будет или что-то подобное.
Решение
http://dev.mysql.com/doc/refman/4.1/en/user-resources.html.
Начиная с MySQL 4.0.2, вы можете ограничить доступ к следующим ресурсам сервера для отдельных учетных записей:
Количество запросов, которые могут выдавать учетную запись в час
Количество обновлений, которые может выдавать учетную запись в час
Количество раз учетная запись может подключаться к серверу в час
Дополнительная информация -
MySQL не имеет значения тайм-аута, либо любой другой встроенный путь к включению отдельного запроса. Тем не менее, довольно тривиально написать скрипт, который убьет долгосрочные запросы. Вы можете даже захватить пользователя и запрос, чтобы вы могли позже побить оскорбительнее пользователя / программист.
Здесь является примером одного с использованием Perl.
Другие советы
Я знаю, что имеет PhpmyAdmin область для максимального количества запросов в час, Max # обновления в час, максимальный # соединений в час, а Max # пользовательских соединений на каждого пользователя. Возможно, есть другие способы установки этих ценностей, кроме PHPMYADMIN