Introduction

Le plugin de cache des résultats de requêtes Mysqlnd ajoute la possibilité de mettre en cache les requêtes côté client pour toutes les extensions PHP MySQL en utilisant mysqlnd.

Depuis la version PHP 5.3.3, le driver natif MySQL pour PHP ( mysqlnd) dispose d'un plugin interne de l'API C. Les plugins C, comme le plugin de mise en cache des requêtes, peuvent étendre les fonctionnalités de mysqlnd.

Lesplugins Mysqlnd comme le plugin de mise en cache des requêtes opère de façon transparente d'un point de vue utilisateur. Le plugin de cache supporte toutes les applications PHP ainsi que toutes les extension PHP MySQL (mysqli, mysql, PDO_MYSQL). Il ne modifie pas les APIs existantes.

Aucun modification significative n'est nécessaire pour mettre en cache une requête. Le cache a 2 modes de fonctionnement. Il peut soit mettre en cache toutes les requêtes (non recommandé), soit uniquement celles marquées avec une certaine astuce SQL (recommandé).

Principales caractéristiques

  • Transparent et facile d'utilisation.

    • supporte toutes les extensions PHP MySQL

    • aucune modification d'API

    • de très simples modifications des applications sont nécessaires

  • Stratégie d'invalidation flexible

    • Time-to-Live (TTL)

    • défini par l'utilisation

  • Stockage avec différents scopes et durée de vie

    • Défaut (Hash, processus mémoire)

    • APC

    • MEMCACHE

    • sqlite

    • défini par l'utilisateur

  • Défense slam interne pour prévenir les débordements du cache.

Limitations

La version courante 1.0.1 de PECL mysqlnd_qc ne supporte pas PHP 5.4. La version 1.1.0-alpha supprime cette limitation.

Les requêtes préparées et bufferisées sont totalement supportées. Ansi, le plugin est capable de mettre en cache toutes les requêtes issues des extensions mysqli et PDO_MySQL, qui sont les deux seules API PHP MySQL à offrir le support des requêtes préparées.

Sur le nom

Le raccourci mysqlnd_qc signifie mysqlnd query cache plugin. Le nom a été choisi pour une démonstration technologique. Au début, les développeurs n'avaient pas prévu de continuer d'utiliser le code de base. Quelques fois, PECL/mysqlnd_qc était aussi appelé client-side query result set cache.

LoadingChargement en cours