Optimiser les accès des modèles à la base de donnée avec Zend_Cache et APC

Publié le 04 mai 2009 par Wtc0der

Introduction

Nous avons vu dans l'article précédent comment tirer partit du cache APC pour accélérer sensiblement nos applications PHP.
Nous allons voir à présent comment appliquer ce même système de cache à nos modèles afin de réduire et d'optimiser les requêtes vers la base de donnée.

Le principe

Il faut savoir qu'a chaque instantiation de nos modèles ( = classes héritant de Zend_Db_Table_Abstract), Zend_Db
va exécuter une série de requête du style "SHOW FIELDS FROM MaTable;" afin d'en "découvrir" les champs et leurs propriétés.
C'est ce que l'on appel les méta-données (metadata en langage Zend).
Dans la pratique, il est assez rare de modifier la structure des tables sur un système en production, on peu donc facilement imaginer mettre le résultat de ces requêtes en cache.
Ça tombe bien, Zend_Db_Table_Abstract nous propose une méthode statique setDefaultMetadataCache acceptant en paramètre un objet Zend_Cache_Core.