Maison > base de données > tutoriel mysql > Comment puis-je compter efficacement les combinaisons distinctes sur plusieurs colonnes d'une table de base de données ?

Comment puis-je compter efficacement les combinaisons distinctes sur plusieurs colonnes d'une table de base de données ?

Linda Hamilton
Libérer: 2025-01-06 03:02:40
original
729 Les gens l'ont consulté

How Can I Efficiently Count Distinct Combinations Across Multiple Columns in a Database Table?

Comptage des valeurs distinctes sur plusieurs colonnes

Pour compter le nombre d'éléments distincts en fonction de plusieurs colonnes dans une table, considérez la requête suivante :

SELECT COUNT(DISTINCT DocumentId, DocumentSessionId)
FROM DocumentOutputItems
Copier après la connexion

Cette requête compte efficacement les combinaisons distinctes de DocumentId et DocumentSessionId, fournissant le résultat.

Approches alternatives

Bien que la requête fournie offre une solution simple, des approches alternatives peuvent améliorer les performances dans certains scénarios :

Utilisation Colonnes calculées persistantes :

Pour de meilleures performances, une colonne calculée persistante peut être créé sur la base d'un hachage ou d'une concaténation de DocumentId et DocumentSessionId. Cela permet à la base de données d'indexer et de créer des statistiques sur la colonne calculée.

ALTER TABLE DocumentOutputItems
ADD ComputedColumn AS HASHBYTES('MD5', DocumentId + DocumentSessionId) PERSISTED
Copier après la connexion

Une fois la colonne calculée remplie, un décompte distinct sur celle-ci sera équivalent à la requête d'origine :

SELECT COUNT(DISTINCT ComputedColumn)
FROM DocumentOutputItems
Copier après la connexion

En optimisant la structure de la base de données et en minimisant le nombre de requêtes, ces approches peuvent améliorer les performances d'opérations de comptage distinctes sur plusieurs colonnes.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal