Ejecuté el excelente script de ajuste de rendimiento de MySQL y comencé a trabajar con las sugerencias. Uno con el que me encontré fue
TABLE CACHE
Valor actual de table_cache = 4096 tablas Tiene un total de 1073 tablas. Tienes 3900 mesas abiertas. La tasa de aciertos de table_cache actual es del 2%, mientras que el 95% de la caché de su tabla está en uso. Probablemente deberías aumentar tu table_cache
Comencé a leer en la tabla_caché pero encontré que la documentación de MySQL era bastante escasa. Dicen que aumentar el table_cache
"si tienes memoria". Lamentablemente, la table_cache
variable se define como "El número de tablas abiertas para todos los subprocesos".
¿Cómo cambiará la memoria utilizada por MySQL si aumento esta variable? ¿Cuál es un buen valor, para configurarlo?
fuente
table_open_cache
cuando miras los documentos. Vea la respuesta de @MarkR al mirartable_cache
Debe monitorear la variable Opened_Tables y ver qué tan rápido aumenta. Si es significativamente más rápido de lo que crea nuevas tablas (incluidas las temporales), entonces el caché de su tabla puede ser demasiado pequeño.
Table_Cache siempre debería, bueno, sobre todo de todos modos, ser significativamente mayor que el número total de tablas en el servidor. De lo contrario, seguirá abriendo y cerrando mesas.
No puedo ver cómo podría obtener una tasa de aciertos de caché del 2%, a menos que esté midiendo el tiempo justo después de reiniciar un servidor o usando mucho FLUSH TABLES (en relación con el número de consultas). Normalmente, la tasa de aciertos de la memoria caché de la tabla debe ser del 99,9%; de lo contrario, el rendimiento no funcionará.
No hagas una TABLAS DE ENJUAGUE si puedes evitarla, explota el caché.
Abrir tablas es costoso ya que necesita leer el archivo FRM. En MyISAM es significativamente peor (que otros motores), ya que cuando cierra una tabla, también arroja todos los bloques en el caché de claves que provienen de sus índices. Entonces, cerrar una tabla volca sus índices de la caché de claves == ¡no es bueno! Otros motores mantienen los bloques almacenados en caché pero aún necesitan releer los metadatos y asignar algunas estructuras.
fuente