habilitar el registro de consultas para una sola base de datos

8

Tengo muchos esquemas de bases de datos en el servidor mysql 5.6, ahora el problema aquí es que quiero capturar las consultas para un solo esquema.

No puedo habilitar el registro de consultas para todo el servidor ya que uno de mis esquemas está muy cargado e impactará en el servidor.

Es de cualquier manera, cualquier herramienta a través de la cual solo podía registrar las consultas por esquema único.

Encontré un gráfico de evaluación comparativa que muestra el impacto en las transacciones / segundo cuando el registro de consultas está habilitado.

ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí

Suyash Jain
fuente
¿Puedes usar un registro de consulta lento en su lugar? ¿Y luego analizar ese registro con pt-query-digest? Si no, puede probar la salida de tcpdump analizada por pt-query-digest
jerichorivera

Respuestas:

1

Pregunta interesante y un +1. Esto me interesó porque puedo ver varios casos de uso para esta funcionalidad.

Desafortunadamente, para su caso en el que no puede activar el registro general, solo hay una solución alternativa bastante inadecuada.

Es utilizar la variable SQL_LOG_OFF para deshabilitar el registro de una conexión determinada. Una solución ideal hubiera sido tener una variable "SQL_LOG_ON" como se puede hacer en Oracle (equivalente), ¿tal vez podría intentar desactivar el cierre de sesión para todas las conexiones que no sean de interés?

Además, y lamentablemente, esto requiere el SUPERprivilegio. De nuevo, esto puede no ser (incluso probablemente no) posible en su caso.

Dependiendo de la gravedad de su problema, las horas de trabajo y la carga del servidor en momentos determinados, es posible que pueda encontrar un uso para el pt-query-digest de Percona que puede ayudar con el análisis de registros. Pequeña comodidad, pero como es habitual, PostgreSQL está muy por delante de MySQL ( 1 , 2 ).

Si desea presentar una solicitud de función, me complacería seguir con un "yo también" si publica el enlace aquí.

Vérace
fuente
1

Si está tan cerca de caerse que no puede activar el registro general en ARCHIVO, tiene problemas peores; necesitan arreglarse.

Sospecho, sin ningún conocimiento real, que el registro lento tendría un impacto similar, especialmente con long_query_time = 0.

5.7 tiene una función de "reescritura de consultas". Algún truco podría usarse allí. (Pero, de nuevo, hay algunos gastos generales, que deben ser comparados).

¿Cuánto tiempo quieres atrapar las consultas? ¿Estás buscando la fuente de una acción traviesa? ¿O está tratando de recopilar consultas para crear un punto de referencia realista para esa tabla? ¿O algo mas?

¿Tiene activada la replicación? ¿Te interesan las lecturas? O escribe? ¿O ambos?

¿Cuántos hilos están activos simultáneamente? El punto de referencia que mostró indicó que para 1, el registro tiene una sobrecarga baja. Es el bloqueo de la tabla en MyISAM o CSV lo que está matando el procesamiento por alta concurrencia.

Su segundo gráfico señala que los clientes realmente deberían estar restringidos a aproximadamente 5-8 conexiones concurrentes; de lo contrario, el rendimiento en realidad disminuye. ¿Qué fueron max_connectionsy Max_used_connectionspara ese gráfico?

Rick James
fuente
Hola, quiero capturar las consultas durante aproximadamente 2 días y estos gráficos no están relacionados con mi evaluación comparativa ... Los pegué solo por razones de conocimiento. La aplicación para la que quiero las consultas es un consumidor de bajos recursos. Tcpdump no proporcionará las estadísticas de tiempo.
Suyash Jain