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']. C’est la fonction lire_metas() qui recalcule $GLOBALS['meta'] à partir des informations de la base de données.
 dans le fichier tmp/meta_cache.php — sauf pour les données sensibles servant à l’authentification. 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().

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 : 16/07/22

Traductions : English, français, Nederlands