sql >> Base de Datos >  >> RDS >> Mysql

Cómo construir manualmente caché mysql

El caché de MySQL funciona de manera diferente dependiendo de si usa el motor de almacenamiento MyISAM o el motor de almacenamiento InnoDB.

MyISAM almacena en caché solo los índices, no los datos. Puede usar LOAD INDEX INTO CACHE para precargar los índices de MyISAM en la memoria caché del búfer de claves. Pero no hay una declaración equivalente si usa InnoDB.

InnoDB almacena en caché tanto los datos como las páginas de índice. No hay un comando especializado para calentar los búferes de caché, pero puede ejecutar algunas instrucciones SQL que realizan exploraciones de tablas completas y exploraciones de índices completas para cargarlas en los búferes. Debería poder hacer esto usando un script en el servidor, sin recurrir a wget !

Estoy de acuerdo con la respuesta de @code_burgar:150 000 filas es lo suficientemente pequeño como para no notar una gran penalización en el rendimiento mientras la memoria caché se está calentando.

Si está hablando de calentar el Query Cache , ese es otro tema. Tendrá que calentar la caché de consultas utilizando consultas SQL específicas, ya que esa caché mantiene los conjuntos de resultados asociados con esas consultas SQL palabra por palabra. Tu wget La solución es ineficiente y probablemente duplique mucho trabajo. Debería poder preparar la caché de consultas ejecutando un script en el servidor que ejecuta cada consulta que desea almacenar en caché una vez .

Pero es posible que deba hacer una revisión del código para descubrir cuáles son esas consultas y actualizar periódicamente su secuencia de comandos de precarga de caché si su código cambia.