Lorsque vous utilisez une base de données MySQL dans PHP, vous rencontrez parfois le problème que les données mises en cache ne sont pas mises à jour dans le temps. Le mécanisme de mise en cache de MySQL peut améliorer l'efficacité de la requête, mais dans certains cas, nous devons forcer à actualiser le cache pour nous assurer que les dernières données sont obtenues. La fonction MySQLI :: Refresh est l'outil utilisé pour implémenter cette fonction.
Cet article introduira en détail l'utilisation de la fonction MySQLI :: Rafraîchir , expliquez comment l'appeler correctement pour actualiser le cache MySQL et accompagner un exemple de code pour aider à comprendre.
MySQLI :: Refresh est une méthode fournie par l'extension MySQLI dans PHP, permettant aux développeurs de rafraîchir les informations d'état et le cache du serveur MySQL. Il correspond au fonctionnement de la chasse d'eau de MySQL et peut actualiser divers caches, tels que le cache de table, le cache de requête, etc.
public bool mysqli::refresh(int $options)
$ Options : une combinaison d'une ou plusieurs options de rafraîchissement, généralement à l'aide de constantes prédéfinies.
Valeur de retour: renvoyez True si l'exécution est réussie et renvoyez faux si l'échec est faux .
Voici quelques options constantes prises en charge par MySqli :: Refresh , qui peut être utilisée en combinaison:
Mysqli_refresh_grant : actualiser le cache lié à l'autorisation.
Mysqli_refresh_log : actualisez le fichier journal.
Mysqli_refresh_tables : actualisez le cache de table.
Mysqli_refresh_hosts : actualisez le cache hôte.
Mysqli_refresh_status : actualisez la variable d'état.
Mysqli_refresh_threads : rafraîchir le cache thread.
Mysqli_refresh_slave : actualisez les informations liées à la réplication maître-esclave.
Mysqli_refresh_master : actualisez les informations liées au serveur principal.
Mysqli_refresh_query_cache : actualisez le cache de requête.
L'exemple suivant montre comment se connecter à une base de données MySQL et actualiser le cache de requête:
<?php
$mysqli = new mysqli("gitbox.net", "username", "password", "database");
if ($mysqli->connect_errno) {
echo "Échec de la connexion: " . $mysqli->connect_error;
exit();
}
// Rafraîchir le cache de requête
if ($mysqli->refresh(MYSQLI_REFRESH_QUERY_CACHE)) {
echo "Requérir le cache rafraîchi avec succès";
} else {
echo "La rafraîchissement du cache de requête a échoué: " . $mysqli->error;
}
$mysqli->close();
?>
L'option mysqli_refresh_query_cache est utilisée ici pour actualiser le cache de requête MySQL.
Si vous souhaitez actualiser plusieurs caches en même temps, vous pouvez transmettre des constantes en utilisant le bit ou les opérateurs | combinaison:
$mysqli->refresh(MYSQLI_REFRESH_TABLES | MYSQLI_REFRESH_QUERY_CACHE);
Ce code actualisera le cache de table et le cache de requête.
Problème d'autorisations : l'opération pour actualiser le cache nécessite généralement des privilèges d'administrateur (tels que des privilèges de rechargement ), sinon l'exécution échouera.
CACHE RACHERCHE COSS : Un rafraîchissement fréquent du cache peut affecter les performances de la base de données et est recommandé de l'utiliser si nécessaire.
Portée de l'application : MySQLI :: Refresh est principalement utilisé dans les scénarios qui nécessitent un contrôle manuel du rafraîchissement du cache, tels que le développement et le débogage ou les scripts de fonctionnement et de maintenance.
En utilisant la fonction MySQLI :: actualiser rationnellement, les développeurs PHP peuvent contrôler le cache MySQL actualiser plus flexiblement pour garantir la cohérence des données et la mise à jour.