Rendimiento lento del servidor MySql: ¿qué y cómo verificar?

10

inicio: descargo de responsabilidad

No soy un servidor DBA MySql; Sé principalmente de MSSQL, por eso necesito tu ayuda.

final: descargo de responsabilidad

Me han pedido que compruebe por qué el motor del servidor MySql está funcionando mal: no he visto ni mantenido las bases de datos involucradas y me gustaría saber por dónde empezar.

¿Dónde empiezo?

¿Qué preguntas debo hacer a aquellos que tienen acceso a MySql? Ni siquiera sé si están usando phpmyadmin o alguna otra herramienta.

Esencialmente:

  • ¿Qué artículos debo pedir y cómo respondería a cada pieza que me dan?

¿Cuáles son los elementos clave a pedir cuando el problema está en el rendimiento de la base de datos?

en MSSQL puedo verificar sp_who2las conexiones existentes para ver si algo está bloqueando, ¿cuál es la contraparte en mysql? * no tiene que ser específico, ya que puede haber muchos tipos de resultados para cada elemento, pero me gustaría ayudar a que la pelota funcione, ya que está afectando a los usuarios, aparentemente configuraron el motor mysql sin tener un dba a bordo.

Yasker Yasker
fuente
¿Ha verificado los problemas habituales de recursos: CPU llena, RAM llena / no utilizada, sobrecarga de E / S? ¿Las 101 cosas con las que comenzarías en un servidor sql?
TomTom
No he tenido la oportunidad de hacerlo, solo quiero estar preparado una vez que entro para que todo siga en movimiento, es posible que las personas en el sitio ya hayan verificado y con servidores de aplicaciones y db con altas especificaciones (la compañía derrochó) i me gustaría centrarme en lo que sucede si el hardware no es el problema
Yasker Yasker
Fuera de la experiencia, comience allí. He visto "servidores de gama alta" con un disco duro SCSI (que deben haber sacado de alguna subasta de eBay) que tenían tiempos de respuesta de varios segundos ... Validaría el lado de E / S. También ayudará: demasiado IO puede señalar índices perdidos si los números son totalmente ridículos.
TomTom

Respuestas:

9
  • Registre consultas lentas: si su sistema tiene un montón de consultas, se hace más difícil descubrir qué consultas están ralentizando su sistema. MySQL proporciona una herramienta para registrar consultas lentas para su posterior análisis http://dev.mysql.com/doc/refman/5.0/en/slow-query-log.html

  • EXPLICAR El comando extendido muestra detalles sobre sus consultas cuando no tiene idea de lo que está sucediendo http://dev.mysql.com/doc/refman/5.0/en/explain-extended.html

  • Para acelerar sus consultas, utilice Index: una buena práctica es agregar índice al ver qué campos están en la cláusula WHERE para agregar índice. Además, si está recuperando todos los campos de una tabla, la consulta se ralentiza al recuperar todos los datos del disco. En la consulta SELECT, debe especificar qué campos necesita traer en su lugar para traerlos a todos con *
  • Utilice Queche Cache http://dev.mysql.com/doc/refman/5.1/en/query-cache-configuration.html
  • Asegúrese de que las opciones del archivo de configuración del servidor MySQL estén optimizadas de acuerdo con su hardware http://dev.mysql.com/doc/refman/5.5/en/option-files.html
  • Asegúrese de estar utilizando tipos de datos optimizados mientras crea una estructura de tabla. Por ejemplo, los campos "Comentarios" tienen un tamaño de 256 caracteres, responda a MYSQL con un campo con el tipo VARCHAR (256) en lugar de usar TEXTO. La consulta será mucho más rápida.

Procedure_Analyse () puede ayudarlo a encontrar tipos de datos óptimos:

http://www.mysqlperformanceblog.com/2009/03/23/procedure-analyse/

http://dev.mysql.com/doc/refman/5.0/en/procedure-analyse.html

  • Existen herramientas de código abierto de Percona: http://www.percona.com/software/percona-toolkit que pueden ser útiles para los DBA de MySQL y especialmente para aquellos que son nuevos en MySQL, estas herramientas les proporcionarán una buena asistencia.
Mahesh Patil
fuente