Lutter contre les requêtes lentes "SELECT COUNT(*)" sur MySQL
Votre requête sur la table change_event, en comptant les lignes qui dépassent un change_event_id spécifique , connaît des retards importants. Mais pourquoi ? Examinons les causes possibles.
Dévoilement du comportement d'InnoDB
Le moteur InnoDB de MySQL utilise des clés primaires en cluster, ce qui signifie que la clé primaire est stockée avec les données de ligne dans les pages de données, plutôt que des pages d’index séparées. Par conséquent, les analyses de plage, comme la vôtre, nécessitent d'analyser toutes les lignes potentiellement larges des pages de données. Ce facteur est exacerbé par la colonne xml_diff de la table, un type de données TEXT qui ralentit encore davantage le traitement.
Stratégies d'optimisation
Pour accélérer la requête, deux approches méritent d'être envisagées :
Conseil supplémentaire :
Pour améliorer davantage les performances, envisagez de modifier la colonne change_event_id en bigint non signé. Cette étape évite les valeurs négatives et peut également rationaliser le traitement.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3