caché de consultas transparente es completamente transparente para la aplicación. Esto causará problemas en algunas circunstancias . Cuando caché de consultas está activada, usted puede conseguir siempre resultados de la consulta , incluso cuando las tablas relacionadas están bloqueados y se están actualizando . Bloqueo de tablas por lo general significa que las mesas están inaccesibles , pero los resultados de consultas de la caché de consultas seguirán llegado a los usuarios.
Caché Limitación
La caché de consultas no funciona para los sub - selecciona, puntos de vista en línea, o de la Unión . Las consultas deben ser exactamente los mismos con el fin de utilizar el resultado de la caché de consultas , lo que significa que si pones comentarios dinámicos en la consulta con más espacios o diferentes casos , se obtiene un resultado diferente del caché de consultas . Otra limitación es sólo consultas SELECT se almacenan en caché . Evite comentarios o espacios en el inicio de la consulta como caché de consultas sólo comprueba la primera letra de la consulta y sólo si es " S " qué sigue para continuar el almacenamiento en caché resultados de la consulta .
Tabla detalle de nivel de invalidación
Si las tablas se modifiquen o actualicen, todas las consultas derivadas de las mesas están invalidada de inmediato . La mayoría de las consultas no se cambian , pero MySQL no puede identificar a los modificados , por lo tanto , elimina todos ellos . Esta es la razón principal que limita la eficiencia de la caché de consultas . Sobre todo con la aplicación de alta de escritura tales como foros , eficiencia caché de consultas es muy baja debido a esta limitación.
Fragmentación con el tiempo
Con el tiempo , caché de consultas se fragmenta y menos eficiente . El comando " FLUSH QUERY CACHE " se puede utilizar para la consulta de caché desfragmentación pero puede bloquear la caché de consultas por el bien de un gran caché de consultas , lo que es incorrecto que las aplicaciones en línea .