MySQL/Optimización/Rendimiento de la BD/Plan de consultas
MySQL usa query cache para almacenar el texto de una consulta SELECT y el resultado que obtuvo el cliente, lo que permite aumentar el rendimiento si luego se recibe una consulta idéntica posteriormente ya que el servidor no necesita analizar y ejecutar la consulta otra vez. Sin embargo, esto no siempre funciona asi, ya que si tenemos aplicaciones con muy frecuentes modificaciones de datos o que utilizan tablas pequeñas y consultas sencillas puede resultar que el cache sea ineficaz e incluso reducir el rendimiento.
Para que una consulta se guarde en la caché, MySQL comprueba que el usuario tenga permisos de SELECT para todas las BD y tablas involucradas. Si un resultado de consulta se retorna desde la caché, se incrementa la variable cache_hits del servidor. Si una tabla es modificada, entonces todas las consultas almacenadas que incluyan esa tabla pasaran a ser inválidas y se eliminarán de la caché.
Para especificar el tamaño de la cache de consulta se utiliza la variable query_cache_size. 0 desactiva la cache. Es conveniente planificar las consultas para utilizar la caché de forma eficiente, y tambien decir que consultas se van a guardar en la caché.