Introducción

El complemento de caché de resultados de consultas de mysqlnd facilita el uso del almacenamiento en caché de consultas en el lado del cliente para todas las extensiones de MySQL para PHP que utilicen mysqlnd.

A partir de la versión 5.3.3 de PHP, el controlador nativo de MySQL para PHP (mysqlnd) introduce una API en C de complementos internos. Los complementos en C, tales como el complemento de caché de consultas, pueden ampliar la funcionalidad de mysqlnd.

Los complementos de mysqlnd, tales como el complemento de caché de consultas, operan de forma transparente desde la perspectiva del usuario. El complemento de caché admite todas las apliaciones de PHP y todas las extensiones de MySQL para PHP ( mysqli, mysql, PDO_MYSQL). No cambia ninguna API existente.

No es necesario hacer cambios significativos en una aplicación para almacenar en caché una consulta. La caché tiene dos modos de operar. Almacenará en caché todas las consultas (no recomendado), o simplemente aquellas consultas marcadas con una sugerencia SQL en particular (recomendado).

Características principales

  • Es transparente y por lo tanto fácil de usar

    • admite todas las extensiones de MySQL para PHP

    • sin cambios en la API

    • son necesarios muy pocos cambios en la aplicación

  • Estrategia de invalidación flexible

    • tiempo de vida (TTL)

    • definida por el usuario

  • Almacenamiento con diferentes ámbitos y periodos de vida

    • Default (Hash, procesa la memoria)

    • APC

    • MEMCACHE

    • sqlite

    • definido por el usuario

  • Defensa de cierre interna para prevenir la estampida de la caché.

Limitaciones

La versión 1.0.1 actual de PECL mysqlnd_qc no admite PHP 5.4. La versión 1.1.0-alpha elimina esta limitación.

Las setencias preparadas y las consultas no almacenadas en búfer están totalmente soportadas. Por lo tanto, el complemento puede almacenar en caché todas las sentencias emitidas con mysqli o PDO_MySQL, la cuales son las únicas dos APIs de MySQL para PHP que ofrecen soporte para sentencias preparadas.

Sobre el nombre

La abreviatura mysqlnd_qc significa complemento de caché de consultas de mysqlnd. El nombre fue elegido por una rápida y desordenada prueba de conceptos. Al principio, los desarrolladores no esperaban que se continuase usando el código base. Algunas veces, a PECL/mysqlnd_qc también se le ha llamado caché de conjuntos de resultados de consultas del lado del cliente.