Как регулировать или расставлять приоритеты в запросах в MySql - PullRequest
7 голосов
/ 28 июня 2010

Есть ли какой-либо способ приоритезировать или ограничить запрос вообще в MySQL?

Я администратор баз данных на сервере, который видит множество неоптимизированных запросов, поступающих на сервер, и они просто разрушают процессор.Я смотрю на удушение определенных пользователей, которые плохо работают с базой данных.

Уточнение:

Я понимаю, что в MySQL встроены средства для ограничения количества запросов, соединений и т. Д.на самом деле проблема не в этом, а в том, что однажды в синей луне пользователь отправит неоптимизированный запрос, и мне нужно будет его отключить или что-то подобное.

Ответы [ 2 ]

4 голосов
/ 28 июня 2010

http://dev.mysql.com/doc/refman/4.1/en/user-resources.html

Начиная с MySQL 4.0.2, вы можете ограничить доступ к следующим ресурсам сервера для отдельных учетных записей:

Количество запросов, которые учетная запись может выполнить в час

Количество обновлений, которые учетная запись может выпустить в час

Количество раз, которое учетная запись может подключаться к серверу в час

Дополнительная информация -

MySQL не имеет значения тайм-аута запроса или какого-либо другого встроенного способа регулирования отдельного запроса.Тем не менее, довольно просто написать скрипт, который будет убивать длительные запросы.Вы можете даже захватить пользователя и выполнить запрос, чтобы позже победить обидчика / программиста.

Здесь является примером использования PERL.

0 голосов
/ 28 июня 2010

Я знаю, что phpMyAdmin имеет область для Максимальное количество запросов в час, Максимальное количество обновлений в час, Максимальное количество подключений в час и Максимальное количество пользовательских подключений на пользователя.Возможно, есть другие способы установить эти значения, отличные от phpMyAdmin

...