Todo sobre Apple, Android, Juegos Apks y Sitios de Peliculas

Acelere su sitio web con el almacenamiento en caché de consultas MySQL

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 caché las consultas SQL de uso común en la memoria para un acceso prácticamente instantáneo a la siguiente página que realiza la misma solicitud. La razón por la que este método es tan poderoso es que no es necesario realizar ningún cambio en su aplicación web, solo debe sacrificar un poco de memoria. Esto no solucionará todos sus problemas, pero definitivamente no hará daño. Nota: si su aplicación actualiza las tablas con frecuencia, la caché de consultas se borrará constantemente y no obtendrá mucho o ningún beneficio de esto. Esto es ideal para una aplicación que principalmente lee la base de datos, como un blog de WordPress. Esto tampoco funcionará si está ejecutando un alojamiento compartido. Habilitar el almacenamiento en caché con el servidor en ejecución Lo primero que querrá hacer es asegurarse de que su instalación de MySQL realmente tenga disponible soporte de almacenamiento en caché de consultas. 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 habilitarán de forma predeterminada. Por extraño que parezca, mi instalación de Ubuntu Feisty ya lo tenía habilitado…

A continuación, necesitaremos verificar y ver si el almacenamiento en caché de consultas está habilitado. Necesitaremos verificar más de una variable, por lo que también podemos hacerlo todas a la vez verificando la variable 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 |

+------------------------------+---------+

Estos son los elementos importantes de la lista y lo que significan:

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

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

SET GLOBAL query_cache_size = 8388608;

De manera similar, 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 sabemos si realmente está funcionando? Puede usar el comando MOSTRAR ESTADO para extraer todas las variables que comienzan con “Qc” y ver lo que sucede bajo el 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 de baja memoria, es posible que deba considerar aumentar este valor, pero no gastaría demasiada memoria en el almacenamiento en caché de consultas para un servidor web… necesita dejar 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 de su instalación.

Abra el archivo usando 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, simplemente descomentelos.

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 realiza principalmente lecturas. Supervise el estado utilizando los métodos anteriores y vea cómo funciona con el tiempo.