Comment utiliser la technologie de mise en cache dans MySQL pour améliorer la vitesse de lecture ?
Avec l'augmentation continue de la quantité de données et l'augmentation de la fréquence d'accès au système, l'efficacité d'exécution des instructions de requête de base de données est devenue l'un des facteurs clés affectant les performances du système. En tant que système de gestion de bases de données relationnelles couramment utilisé, MySQL fournit une variété de technologies de mise en cache pour optimiser les performances des requêtes, y compris la mise en cache des requêtes.
La mise en cache des requêtes est l'une des technologies de mise en cache les plus simples et les plus basiques de MySQL. Elle améliore la vitesse de lecture en stockant les résultats des requêtes en mémoire afin que les résultats dans le cache puissent être renvoyés directement lorsque la même requête est exécutée à plusieurs reprises. Ce qui suit présentera en détail comment utiliser le cache de requêtes dans MySQL pour optimiser les performances des requêtes.
Tout d’abord, vous devez vous assurer que la mise en cache des requêtes est activée. Dans le fichier de configuration MySQL (généralement my.cnf), recherchez et modifiez les éléments de configuration suivants :
query_cache_type = 1
query_cache_size = 64M
Parmi eux, query_cache_type=1 signifie activer le cache de requêtes, et query_cache_size spécifie la taille de le cache de requêtes. Celui-ci est défini sur 64 Mo. Après avoir terminé la modification, redémarrez le service MySQL pour que la configuration prenne effet.
Ensuite, vous devez ajouter une commande de cache avant l'instruction de requête qui doit utiliser le cache de requête.
Par exemple, pour interroger l'enregistrement portant l'ID 1 dans la table nommée "users", vous pouvez utiliser l'instruction suivante :
SELECT * FROM users WHERE id = 1
Pour activer la mise en cache des requêtes, vous pouvez ajouter "" avant l'instruction de requête SQL_CACHE", comme indiqué ci-dessous :
SELECT SQL_CACHE * FROM users WHERE id = 1;
De cette façon, MySQL mettra en cache les résultats de la requête en mémoire.
De plus, vous pouvez également contrôler la période de validité du cache en définissant le délai d'expiration du cache. Dans MySQL, le délai d'expiration du cache par défaut est d'une heure, qui peut être modifié via les éléments de configuration suivants :
query_cache_limit = 1M
query_cache_min_res_unit = 512
Parmi eux, query_cache_limit spécifie la limite de taille du résultat mis en cache, qui est définie sur 1 Mo ici, et query_cache_min_res_unit signifie L'unité minimale des résultats mis en cache, définie ici sur 512 octets. Définissez les valeurs de ces deux paramètres en fonction des besoins réels.
De plus, vous pouvez contrôler si la mise en cache des requêtes est utilisée en utilisant des indicateurs de cache. Dans MySQL, vous pouvez utiliser SQL_NO_CACHE pour désactiver le cache de requêtes, comme suit :
SELECT SQL_NO_CACHE * FROM users WHERE id = 1;
De cette façon, MySQL interrogera directement les résultats de la base de données sans utiliser le cache de requêtes.
Il est à noter que le cache de requêtes n'est utile que pour les requêtes fréquemment interrogées et dont les résultats ne changent pas fréquemment. Si les données interrogées sont fréquemment modifiées, le cache de requêtes entraînera un grand nombre d'invalidations de cache et d'opérations de mise à jour, ce qui réduira les performances des requêtes.
Pour résumer, l'utilisation du cache de requêtes peut améliorer considérablement la vitesse de lecture de MySQL et réduire la pression d'accès sur la base de données. Cependant, lors de sa configuration et de son utilisation, vous devez soigneusement considérer la fréquence des requêtes et la variabilité des données pour éviter des opérations d'invalidation du cache et de maintenance inutiles. Dans les applications réelles, des réglages pertinents peuvent être effectués en fonction des exigences métier spécifiques et des performances du système.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!