viernes, 4 de abril de 2014

MySQL Explicar y SQL_NO_CACHE

Original post: http://anothermysqldba.blogspot.com/2014/04/mysql-explain-sqlnocache.html

Así que hoy me estaba ayudando a alguien con su rendimiento de base de datos y corrió a través de algunas consultas mal escritos. Ahora, sin duda todo el mundo comete errores, el objetivo es hacer todo lo posible para evitarlos.

Así que sólo un par de consejos útiles que hacer antes de dejar una consulta suelta a su entorno.

Siempre ejecutar la consulta a través de explicar primero. Algo tan simple como hacer a explicar primero confirmará sin faltas de ortografía (ya que no se ejecutará), y le permitirá optimizar la consulta.
Ya existen varios enlaces sobre cómo utilizar explique:
El objetivo es simple. Usted quiere que las claves válidas en las possible_keys y llaves (no nulas) y cuando se trata de key_len no desea cada tabla sea 100s de filas. Si usted puede conseguir el primer key_len sea 200 (sólo un número que elegí como ejemplo), entonces lo siguiente es 5,4,3,2,1 y no otro 200, entonces su consulta debería funcionar bien. Esa es una afirmación muy simplista y de alto nivel y le sugiero que revise los hipervínculos que figuran entender Explicar más. La consulta que vi hoy tenía 5 + se une y un sub-select (a través de una combinación fue mejor en el dónde declaración) y 200 + filas para cada key_len. A pocos ajustes pueden permitir su consulta a caer a partir de 200 segundos a 1 segundo o menos. Siempre, siempre, siempre explican.

La siguiente pista, trata de poner a prueba sus consultas con SQL_NO_CACHE. Esto le permite probar la consulta real y optimizar de la mejor manera que pueda. Una vez que se convierte en caché (si va a ser), entonces sólo se ejecutará mucho más rápido para usted.
Una última nota ... Echa un vistazo a los consejos de rendimiento de SQL para MySQL que existieron una vez en el sitio fragua, pero ahora están en - https://wikis.oracle.com/pages/viewpage.action?pageId=27263381