Cache SQL

SPIP met en cache certains éléments de la base de données pour éviter des appels intempestifs au serveur SQL et pour que l’affichage des pages publiques déjà en cache puisse fonctionner même si le serveur de base de donnée est indisponible. Deux caches sont ainsi créés.

Cache des métas

Le premier est un export complet de la table SQL spip_meta. Cette table stocke des paramètres de configuration ou de fonctionnement de SPIP. Ces informations sont à la fois déposées dans la globale $GLOBALS['meta'] et, à l’exception des données sensibles servant à l’authentification, dans le fichier tmp/meta_cache.php. Ce fichier a une durée de validité définie par _META_CACHE_TIME. Il est réécrit lors de l’appel à ecrire_meta() ou effacer_meta(). La fonction lire_metas() elle recalcule $GLOBALS['meta'] avec les informations de la base de données.

Cache des descriptions SQL

Le second cache concerne la description des tables SQL des bases de données. Ces descriptions sont stockées dans les fichiers tmp/cache/sql_desc*.txt, avec un fichier par connecteur de base de données. Ce fichier est créé et utilisé par la fonction base_trouver_table_dist() qui sert de base à diverses fonctions PHP en rapport avec les descriptions SQL comme table_objet(), id_table_objet(), objet_type().

Pour recréer ce fichier de cache, il faut explicitement appeler la fonction trouver_table() sans argument :

$trouver_table = charger_fonction('trouver_table','base');
$trouver_table();

Auteur Matthieu Marcillaud Publié le : Mis à jour : 12/03/23

Traductions : English, français