Acelere su sitio web con MySQL Query Caching

Video: Acelere su sitio web con MySQL Query Caching

Video: Acelere su sitio web con MySQL Query Caching
Video: El Cofre Oculto | Secreto #2 | Plantas vs Zombies Garden Warfare 2 2024, Marcha
Acelere su sitio web con MySQL Query Caching
Acelere su sitio web con MySQL Query Caching
Anonim

Una de las mejores formas de acelerar su aplicación web es habilitar el almacenamiento en caché de consultas en su base de datos, que almacena en la memoria caché las consultas de SQL más utilizadas para el acceso virtualmente instantáneo en la página siguiente que realiza la misma solicitud.

La razón por la que este método es tan poderoso es que no tiene que hacer ningún cambio en su aplicación web, solo tiene que sacrificar un poco de memoria. Esto no solucionará todos sus problemas, pero definitivamente no puede hacer daño.

Nota: si su aplicación actualiza las tablas con frecuencia, la caché de consultas se eliminará constantemente y no obtendrá mucho o ningún beneficio de esto. Esto es ideal para una aplicación que generalmente lee contra la base de datos, como un blog de WordPress. Esto tampoco funcionará si está ejecutando en un alojamiento compartido.

Habilitar el almacenamiento en caché con el servidor en ejecución

Lo primero que querrás hacer es asegurarte de que tu instalación de MySQL tenga realmente disponible el soporte de consulta de caché. La mayoría de las distribuciones lo hacen, pero deberías comprobarlo de todos modos.

Querrá ejecutar este comando desde su consola MySQL, que le indicará si el almacenamiento en caché de consultas está disponible.

mysql> show variables like 'have_query_cache'; +------------------+-------+ | Variable_name | Value | +------------------+-------+ | have_query_cache | YES | +------------------+-------+

No confunda esto con el significado de que el almacenamiento en caché de consultas está realmente habilitado, porque la mayoría de los proveedores de alojamiento no lo van a habilitar de forma predeterminada. Curiosamente, mi instalación de Ubuntu Feisty ya la tenía habilitada …

A continuación, deberemos comprobar y ver si el almacenamiento en caché de consultas está habilitado. Tendremos que verificar más de una variable, por lo que también podemos hacerlo de una vez al verificar la variable% de consulta

mysql> show variables like 'query%'; +------------------------------+---------+ | Variable_name | Value | +------------------------------+---------+ | query_alloc_block_size | 8192 | | query_cache_limit | 1048576 | | query_cache_min_res_unit | 4096 | | query_cache_size | 8388608 | | query_cache_type | ON | | query_cache_wlock_invalidate | OFF | | query_prealloc_size | 8192 | +------------------------------+---------+

Aquí están los elementos importantes en la lista y lo que significan:

  • query_cache_size - Este es el tamaño del caché en bytes. Establecer este valor en 0 efectivamente deshabilitará el almacenamiento en caché.
  • query_cache_type - Este valor debe estar activado o 1 para que el almacenamiento en caché de consultas esté habilitado de forma predeterminada.
  • query_cache_limit - Esta es la consulta de tamaño máximo (en bytes) que se almacenará en caché.

Si el valor de query_cache_size se establece en 0 o simplemente desea cambiarlo, deberá ejecutar el siguiente comando, teniendo en cuenta que el valor está en bytes. Por ejemplo, si desea asignar 8MB al caché, usaríamos 1024 * 1024 * 8 = 8388608 como valor.

SET GLOBAL query_cache_size = 8388608;

Del mismo modo, las otras opciones se pueden configurar con la misma sintaxis:

SET GLOBAL query_cache_limit = 1048576;

SET GLOBAL

query_cache_type

= 1;

Ahora, ¿cómo podemos saber si realmente está funcionando? Puede usar el comando MOSTRAR ESTADO para extraer todas las variables que comienzan con "Qc" para observar lo que sucede debajo del capó.

mysql> SHOW STATUS LIKE 'Qc%'; +-------------------------+--------+ | Variable_name | Value | +-------------------------+--------+ | Qcache_free_blocks | 65 | | Qcache_free_memory | 201440 | | Qcache_hits | 18868 | | Qcache_inserts | 2940 | | Qcache_lowmem_prunes | 665 | | Qcache_not_cached | 246 | | Qcache_queries_in_cache | 492 | | Qcache_total_blocks | 1430 | +-------------------------+--------+ 8 rows in set (0.00 sec)

Notarás en las estadísticas que me queda mucha memoria libre. Si su servidor muestra muchas ciruelas bajas, es posible que deba considerar aumentar este valor, pero no gastaría mucha memoria en el almacenamiento en caché de consultas para un servidor web … debe dejar la memoria disponible para apache, php, ruby o lo que sea que estés usando

Habilitar en el archivo de configuración

Si desea que estos cambios sobrevivan a un reinicio o reinicio del servidor mysql, deberá agregarlos a su archivo de configuración /etc/mysql/my.cnf para MySQL. Tenga en cuenta que podría estar en una ubicación diferente en su instalación.

Abra el archivo utilizando un editor de texto en modo sudo o raíz, y luego agregue estos valores si aún no existen en el archivo. Si existen, solo descoméntelas.

query_cache_size = 268435456 query_cache_type=1 query_cache_limit=1048576

El almacenamiento en caché de consultas puede mejorar significativamente la velocidad de su aplicación web, especialmente si su aplicación realmente lee. Supervise el estado utilizando los métodos anteriores y vea cómo funciona con el tiempo.

Recomendado: