2010-06-28 14 views
6

¿Hay alguna forma de priorizar o limitar una consulta en absoluto en MySQL?Cómo acelerar o priorizar una consulta en MySql

Soy un DBA en un servidor que ve muchas consultas no optimizadas entrar en el servidor y simplemente destruyen la CPU. Estoy buscando estrangular a ciertos usuarios que golpean en la base de datos de mala manera.

Aclaración:

que darse cuenta de que MySQL tiene instalaciones construidas para limitar el número de consultas, conexiones, etc. Pero esas no son realmente el problema, es que una vez en una luna azul un usuario enviará un unoptimized consulta, y necesitaría tiempo o algo similar.

+2

Por "acelerador" ¿te refieres a estrangular? Me siento de esa manera a veces ... – MJB

Respuesta

4

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

A partir de MySQL 4.0.2, puede limitar el acceso a los siguientes recursos del servidor para las cuentas individuales:

El número de consultas que una cuenta puede emitir por hora

el número de cambios que una cuenta puede realizar por hora

el número de veces que una cuenta puede conectarse al servidor por hora

Información adicional -

MySQL no tiene un valor de tiempo de espera de consulta, o cualquier otra forma integrada de estrangular a una consulta individual. Sin embargo, es bastante trivial escribir una secuencia de comandos que matará las consultas de larga ejecución. Incluso podría capturar al usuario y consultar para poder vencer al usuario/programador infractor más adelante.

Here es un ejemplo de uno que usa PERL.

+0

Gracias por la información, por favor vea la aclaración en la pregunta original. –

0

sé que phpMyAdmin tiene un área de Número máximo de consultas por hora, Número máximo de actualizaciones por hora, Número máximo de conexiones por hora, y Número máximo de conexiones de usuario por usuario. Probablemente hay otros modos de establecer estos valores distintos de phpMyAdmin

+0

Gracias por la información, por favor vea la aclaración en la pregunta original. –

Cuestiones relacionadas