rendimiento - optimizar mysql en debian
MySQL: obligue a no usar el caché para probar la velocidad de consulta (9)
Estoy probando la velocidad de algunas consultas en MySQL. La base de datos almacena estas consultas en caché, lo que me dificulta obtener resultados confiables al probar qué tan rápido son estas consultas.
¿Hay una manera de deshabilitar el almacenamiento en caché para una consulta?
Sistema: MySQL 4 en alojamiento web de Linux, tengo acceso a PHPMyAdmin.
Gracias
Cualquier referencia a la fecha / hora actual deshabilitará el caché de consulta para esa selección:
SELECT *,NOW() FROM TABLE
Consulte "Requisitos previos y notas para MySQL Query Cache Use" @ http://dev.mysql.com/tech-resources/articles/mysql-query-cache.html
El uso de una variable definida por el usuario dentro de una consulta hace que la consulta se pueda volver a eliminar. Me pareció un indicador mucho mejor que usar SQL_NO_CACHE
. Pero debe colocar la variable en un lugar donde la configuración de la variable no afecte seriamente el rendimiento:
SELECT t.*
FROM thetable t, (SELECT @a:=NULL) as init;
Intente usar la SQL_NO_CACHE (MySQL 5.7) en su consulta. (Los usuarios de MySQL 5.6 hacen clic HERE )
p.ej.
SELECT SQL_NO_CACHE * FROM TABLE
Esto evitará que MySQL almacene en caché los resultados, sin embargo, tenga en cuenta que otros cachés de sistema operativo y de disco también pueden afectar el rendimiento. Estos son más difíciles de recorrer.
Otra alternativa que solo afecta a la conexión actual:
SET SESSION query_cache_type=0;
Si desea deshabilitar el caché de consultas, establezca ''query_cache_size'' en 0 en su archivo de configuración de mysql. Si su conjunto 0 mysql no utilizará el caché de consulta.
También hay una opción de configuración: query_cache_size = 0
Para deshabilitar el caché de consultas al inicio del servidor, configure la variable del sistema query_cache_size en 0. Al deshabilitar el código del caché de consultas, no hay una sobrecarga notable. Si crea MySQL desde la fuente, las capacidades de consulta de la memoria caché se pueden excluir completamente del servidor invocando configure con la opción --without-query-cache.
Consulte http://dev.mysql.com/doc/refman/5.1/en/query-cache.html
También puede ejecutar el siguiente comando para restablecer la caché de consulta.
RESET QUERY CACHE
Un problema con el
SELECT SQL_NO_CACHE * FROM TABLE
El método es que parece que solo impide que el resultado de su consulta se almacene en caché. Sin embargo, si está consultando una base de datos que se está utilizando activamente con la consulta que desea probar, entonces otros clientes pueden almacenar en caché su consulta, lo que afectará sus resultados. Continuaré investigando formas de solucionar esto, editaré esta publicación si descubro una.
Yo uso lo siguiente:
SHOW VARIABLES LIKE ''query_cache_type'';
SET SESSION query_cache_type = OFF;
SHOW VARIABLES LIKE ''query_cache_type'';