Maison > base de données > tutoriel mysql > Comment les colonnes calculées persistantes peuvent-elles améliorer les performances des requêtes de comptage distinctes sur plusieurs colonnes ?

Comment les colonnes calculées persistantes peuvent-elles améliorer les performances des requêtes de comptage distinctes sur plusieurs colonnes ?

Barbara Streisand
Libérer: 2025-01-05 22:57:40
original
881 Les gens l'ont consulté

How Can Persisted Computed Columns Improve Performance for Distinct Count Queries Across Multiple Columns?

Amélioration des requêtes de comptage distinct sur plusieurs colonnes

Le comptage de valeurs distinctes sur plusieurs colonnes est une exigence courante dans l'analyse des données. Une façon d'y parvenir consiste à utiliser une sous-requête comme indiqué dans l'extrait de code fourni. Cependant, cette approche peut potentiellement avoir un impact sur les performances.

Solution alternative : colonnes calculées persistantes

Pour améliorer les performances de ces requêtes, envisagez d'utiliser des colonnes calculées persistantes. Une colonne calculée persistante calcule et stocke une valeur basée sur une expression définie. Dans ce cas, vous pouvez créer une colonne calculée qui combine les deux colonnes à l'aide d'une fonction de hachage ou d'une concaténation :

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

Une fois persistante, la colonne calculée devient une colonne indexée et déterministe qui peut être utilisée pour des requêtes rapides. . En comptant les valeurs distinctes de cette colonne calculée, vous pouvez obtenir le même résultat que l'approche par sous-requête :

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

Avantages :

  • Performances améliorées : Les colonnes calculées persistantes sont optimisées pour les requêtes rapides en tirant parti de l'indexation et statistiques.
  • Ressources de base de données réduites : En utilisant une seule requête au lieu d'une sous-requête, vous pouvez minimiser l'utilisation des ressources de votre base de données.

Remarque : L'efficacité de cette approche dépend de la distribution des données et de la configuration appropriée des paramètres de la base de données.

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