Accélération du comptage des lignes dans MySQL
Malgré l'indexation de la colonne « statut », le comptage des lignes dans les grandes tables MySQL reste long, ce qui incite le question : existe-t-il des techniques pour accélérer de telles requêtes ? Bien que des techniques telles que la mise en cache des résultats ou la maintenance de tableaux récapitulatifs séparés existent, ces décomptes peuvent-ils être directement optimisés ?
À l'aide d'un exemple de table de 2 millions de lignes, les tests révèlent que MyISAM fonctionne plus rapidement (0,9 à 1,1 secondes) qu'InnoDB (3,0 -3,2 secondes) pour la requête GROUP BY. Cependant, aucune des deux approches n'atteint des performances inférieures à la seconde.
Malgré ces résultats, l'exploration de méthodes alternatives pour accélérer les requêtes directes, telles que les moteurs de stockage basés sur des colonnes, peut entraîner des compromis pour d'autres types de requêtes. Par conséquent, la maintenance d'un tableau récapitulatif via des déclencheurs apparaît comme la solution recommandée pour garantir une récupération instantanée du décompte quelle que soit la taille du tableau.
Pour mettre en œuvre cette approche, utilisez le code passe-partout fourni pour créer des déclencheurs pour l'insertion, la suppression et les mises à jour de livres. Ces déclencheurs maintiennent le nombre de livres dans chaque statut dans le tableau récapitulatif, garantissant ainsi des récupérations efficaces du nombre pour n'importe quel statut, éliminant ainsi le besoin d'analyses coûteuses ligne par ligne.
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!