[MySQL] configuración consulta lenta y el uso

directorio

1 ¿Qué es la consulta lenta

2 configuración consulta lenta

2.1 consultas lentas básicas de configuración

2.2 Interpretación de consultas lentas

3 análisis consulta lenta

3.1 mysqldumpslow

3.2 pt_query_digest

3.2.1 Otras lecturas


1 ¿Cuál es la consulta lenta

registro de consultas lentas, por definición, registro de consultas relativamente lento, se refiere a MySQL grabar todas las sentencias SQL ejecutadas más de ajuste de parámetros de umbral long_query_time tiempo de registro. El registro puede traer buena ayuda para las sentencias SQL optimizadas. Por defecto, el registro de consultas lentas está desactivada , al utilizar la función de registro de consultas lentas, primero debe activar la función de registro de consultas lentas.

Consulta proceso de optimización es encontrar primero todas las consultas lentas con instrucciones de consulta SQL declaración más lenta, y luego utilizando explicar los planes para la aplicación de estas sentencias SQL para analizar y optimizar en consecuencia.

 

2 configuración consulta lenta

2,1 consulta lenta la configuración básica

  • inicio slow_query_log tecnología de parada de registro de consultas lentas
  • slow_query_log_file registro de consultas lentas se especifica la ruta de almacenamiento y archivo (el archivo de datos predeterminado y poner juntos)
  • long_query_time designado lento tiempo de ejecución de SQL registro de consulta de registro fue el valor umbral (unidad: segundos, 10 segundos por defecto)
  • log_queries_not_using_indexes no es si los registros son de usar el índice de SQL
  • almacenamiento del registro local log_output [CUADRO] [ARCHIVO] [ARCHIVO, TABLA]

 

Después de configurar la consulta lenta, registros que cumplen las condiciones de SQL

incluyendo:

  • pregunta
  • instrucciones de modificación de datos
  • SQL se ha deshecho demasiado

 

La operación práctica:

Por el siguiente comando para comprobar la configuración anterior:

show VARIABLES like '%slow_query_log%'
 
show VARIABLES like '%slow_query_log_file%'
 
show VARIABLES like '%long_query_time%'
 
show VARIABLES like '%log_queries_not_using_indexes%'
 
show VARIABLES like 'log_output'
 
 
set global long_query_time=0;   ---默认10秒,这里为了演示方便设置为0 
 
set GLOBAL  slow_query_log = 1; --开启慢查询日志
 
set global log_output='FILE,TABLE'  --项目开发中日志只能记录在日志文件中,不能记表中

Después de que la instalación se haya completado, se puede encontrar una lista de algunas archivo de registro de consultas lentas consulta dentro de los datos.

 

2.2 interpretación de consultas lentas

Desde el registro de consultas lentas dentro de un lento datos de registro de consultas extracto está compuesto de la siguiente

 

formato de consulta lenta

 

número de línea

contenido

1

Nombre de usuario, información IP del usuario, número de ID del hilo

2

Se necesita tiempo para ejecutar [unidad: ms]

3

El tiempo de ejecución adquirir un bloqueo

4

Los resultados obtenidos por el número de filas

5

El número de líneas de datos escaneados

6

Este tiempo de ejecución específica de SQL

7

sentencia SQL específica

 

 

3 análisis consulta lenta

registro de consultas lentas es muy grande, desde el interior para encontrar un registro de consultas lentas no es cosa muy fácil, en general, requieren algunas herramientas auxiliares para navegar rápidamente a la necesidad de optimizar las sentencias SQL, aquí hay dos ayudas de consultas lentas

 

3.1 mysqldumpslow

herramienta de análisis de registro de consultas lentas común, además del resumen de la consulta SQL otro idéntico, y el orden de los resultados de acuerdo con los parámetros especificados en el análisis de salida. Las herramientas en el archivo bin en el directorio de instalación de MySQL.

sintaxis:

mysqldumpslow -s r -t 10 slow-mysql.log
-s order (c,t,l,r,at,al,ar) 
         c:总次数
         t:总时间
         l:锁的时间
         r:总数据行
         at,al,ar  :t,l,r平均数  【例如:at = 总时间/总次数】
 
 -t  top   指定取前面几条作为结果输出

 

mysqldumpslow.pl -st -t 10 D: \ Desktop-2EKGEE5-slow.log

 

 

3.2 pt_query_digest

Es una herramienta para el análisis de consultas lentas de MySQL, en comparación con las herramientas mysqldumpshow, herramientas de análisis de Py-query_digest más específicos y mejor.

 

mysqldumpshow esta herramienta debe estar conectado al servidor MySQL puede utilizar, a veces, por alguna razón, como los permisos suficientes, una consulta no se puede grabar en el servidor. Tales restricciones a menudo nos encontramos. Pero py-query_digest hay tal problema. Y py-query_digest puede ver un plan de ejecución, sin mysqldumpshow.

 

Primer vistazo a la siguiente orden

 . Perl \ pt-consulta-digerir h --explain = 127.0.0.1, u = raíz, p = root1234% D: \ Desktop-2EKGEE5-slow.log

La información agregada tiempo total de consultas [], [] el tiempo de bloqueo total, el [la cantidad total de adquisición de datos], [cantidad de datos de escaneado], [Tamaño] consulta

  • Respuesta: El tiempo de respuesta total.
  • tiempo: El tiempo total de la cuota de consulta en este análisis.
  • llamadas: los tiempos de ejecución, que este análisis un total de cuántos de este tipo de consulta.
  • R / Call: el tiempo medio de respuesta por cada ejecución.
  • Artículo: objeto de consulta

 

3.2.1 Otras lecturas:

3.2.1.1 pt-consulta-digerir la gramática y la opción importante

pt-consulta-digerir [OPCIONES] [FICHEROS] [DSN]

  • Cuando el parámetro --review --create-review-tabla usada cuando el resultado del análisis es la salida a la mesa, si no hay tabla se crea automáticamente.
  • Cuando el parámetro --Historia-historia-mesa --create utiliza cuando el resultado del análisis se emite a la mesa, si no hay una tabla se crea automáticamente.
  • --filter de consultas lentas introducidos por el especificado cadena se analiza y luego se filtró para partido
  • --limit limitar el número o porcentaje de la salida, el valor predeterminado es 20, es decir, la instrucción de salida más lenta 20, si es 50% de la proporción de la orden de tiempo total de respuesta de la prensa descendente, da salida a la suma de la posición 50% está apagado.
  • dirección del servidor MySQL --host
  • --user nombre de usuario de MySQL
  • contraseña de usuario MySQL --password
  • --Historia guardar los resultados del análisis a la mesa, analizar los resultados con más detalle, la próxima vez que utilice --Historia, si existe la misma declaración, y de consulta diferentes intervalos de tiempo y la historia como la tabla, los datos se registra en la tabla puede cambiar la historia de comparar ciertos tipos de consultas mediante la consulta de la misma suma de control.
  • --review analizará guardar los resultados en la tabla, este análisis no se lleva a cabo un registro de la parametrización de consultas, un tipo de consulta es relativamente simple. Cuando la próxima vez que utilice --review, si no es el mismo análisis de los estados, no va a grabar los datos en la tabla.
  • --output resultado del análisis tipo de salida, el valor puede ser Informe (análisis estándar), slowlog (log Mysql lento), JSON , JSON-anon, Informe uso general, más fácil de leer.
  • --ya de lo que el tiempo para iniciar el análisis, el valor de la cadena, puede ser un "aaaa-mm-dd [hh: mm: ss]" formato de punto de tiempo designado puede ser un simple valores de tiempo: s ( sec), h (horas), m (minutos), d (días), que es representado como 12h a partir de 12 horas antes de las estadísticas de inicio.
  • plazo --until, con consulta lenta -desde puede ser analizada en un periodo de tiempo.

 

3.2.1.2 Análisis de pt-consulta-digerir salida

3.2.1.2.1 Parte 1: resultados estadísticos generales

  • En general: Número total de consultas
  • Intervalo de tiempo: tiempo de ejecución de la consulta
  • único: El número de consultas únicas, después de eso es ser consulta parametrizada, un número total de consultas diferentes tienen
  • Total: min Total: El mínimo max: máximo promedio: Normal
  • 95%: todos los valores en orden ascendente, que se encuentra el 95% del número, este número es generalmente el más valioso
  • mediana: media, todos los valores en orden ascendente, el número de posiciones en el medio

 

# 该工具执行日志分析的用户时间,系统时间,物理内存占用大小,虚拟内存占用大小
# 340ms user time, 140ms system time, 23.99M rss, 203.11M vsz
# 工具执行时间
# Current date: Fri Nov 25 02:37:18 2016
# 运行分析工具的主机名
# Hostname: localhost.localdomain
# 被分析的文件名
# Files: slow.log
# 语句总数量,唯一的语句数量,QPS,并发数
# Overall: 2 total, 2 unique, 0.01 QPS, 0.01x concurrency 
# 日志记录的时间范围
# Time range: 2016-11-22 06:06:18 to 06:11:40
# 属性    总计  最小 最大 平均 95% 标准 中等
# Attribute   total  min  max  avg  95% stddev median
# ============  ======= ======= ======= ======= ======= ======= =======
# 语句执行时间
# Exec time    3s 640ms  2s  1s  2s 999ms  1s
# 锁占用时间
# Lock time   1ms  0  1ms 723us  1ms  1ms 723us
# 发送到客户端的行数
# Rows sent    5  1  4 2.50  4 2.12 2.50
# select语句扫描行数
# Rows examine  186.17k  0 186.17k 93.09k 186.17k 131.64k 93.09k
# 查询的字符数
# Query size   455  15  440 227.50  440 300.52 227.50

 

3.2.1.2.2 La segunda parte: las estadísticas de paquetes de consulta

  • Rango: Clasificación Todas las declaraciones, tiempo de consulta por defecto en orden descendente, especificado por --order por
  • Consulta ID: declaración de identificación, (caracteres de texto y quitar los espacios adicionales, calculado hash de valor)
  • Respuesta: El tiempo total de respuesta
  • tiempo: El tiempo total de la cuota de consulta en este análisis
  • llamadas: los tiempos de ejecución, que este análisis un total de cuántos de este tipo de consulta
  • El tiempo medio de respuesta por cada ejecución: R / Call
  • La relación del tiempo de respuesta de Varianza-a-media: V / M
  • Artículo: objeto de consulta

 

# Profile
# Rank Query ID   Response time Calls R/Call V/M Item
# ==== ================== ============= ===== ====== ===== ===============
# 1 0xF9A57DD5A41825CA 2.0529 76.2%  1 2.0529 0.00 SELECT
# 2 0x4194D8F83F4F9365 0.6401 23.8%  1 0.6401 0.00 SELECT wx_member_base

 

3.2.1.2.3 Parte III: Estadísticas detalladas de cada consulta

Estadísticas detalladas por la siguiente consulta, la parte superior de la tabla muestra el número de ejecuciones, máximo, mínimo, promedio, y así los fines estadísticos del 95%.

  • ID: número ID de la consulta, el ID de consulta, y la correspondiente figura.
  • Bases de datos: nombre de la base
  • Usuarios: el número de veces que cada uno realiza el usuario (contabilidad)
  • distribución Query_time: distribución del tiempo de consulta, la proporción de la longitud del intervalo refleja, en la presente realización entre la consulta dos veces el número de 1s-10s que 10s.
  • Tablas: las tablas implicadas en la consulta
  • Explicar: instrucción SQL
# Query 1: 0 QPS, 0x concurrency, ID 0xF9A57DD5A41825CA at byte 802 
# This item is included in the report because it matches --limit.
# Scores: V/M = 0.00
# Time range: all events occurred at 2016-11-22 06:11:40
# Attribute pct total  min  max  avg  95% stddev median
# ============ === ======= ======= ======= ======= ======= ======= =======
# Count   50  1
# Exec time  76  2s  2s  2s  2s  2s  0  2s
# Lock time  0  0  0  0  0  0  0  0
# Rows sent  20  1  1  1  1  1  0  1
# Rows examine 0  0  0  0  0  0  0  0
# Query size  3  15  15  15  15  15  0  15
# String:
# Databases test
# Hosts  192.168.8.1
# Users  mysql
# Query_time distribution
# 1us
# 10us
# 100us
# 1ms
# 10ms
# 100ms
# 1s ################################################################
# 10s+
# EXPLAIN /*!50100 PARTITIONS*/
select sleep(2)\G

 

Publicado 54 artículos originales · ganado elogios 47 · Vistas a 10000 +

Supongo que te gusta

Origin blog.csdn.net/cy973071263/article/details/104550394
Recomendado
Clasificación