sélectionnez count(*) comme agrégat à partir de `call_records` où (`CallType` = 'dialout' et `CalledNo` = '12345678910');
Comment optimiser cette requête ? Le principe est que l'index ne peut pas être créé, car il existe déjà plusieurs index dans cette table, ce qui peut entraîner le verrouillage de la table.
S'agit-il de données chaudes ? Sinon, exécutez simplement un script régulièrement et enregistrez le décompte statistique dans un autre tableau statistique.
Pour les données chaudes, voyez si l'index que vous avez construit auparavant peut être transformé en un index combiné car l'arbre B commence à gauche, si vous construisez un (a, b, c), a et a, b et a, b et c peuvent être utilisés, la fonction de requête au niveau de la couche de code fait attention à l'ordre des champs.
Réoptimisez l'index. Il y a trop d'index uniques, alors essayez de créer un index commun. Si ces statistiques ne nécessitent pas de performances en temps réel, utilisez md5 (instruction SQL) comme clé, utilisez le résultat comme valeur et stockez-le dans le cache (redis).