ホームページ >データベース >mysql チュートリアル >永続化された計算列は、複数の列にわたる個別のカウント クエリのパフォーマンスをどのように向上させることができますか?

永続化された計算列は、複数の列にわたる個別のカウント クエリのパフォーマンスをどのように向上させることができますか?

Barbara Streisand
Barbara Streisandオリジナル
2025-01-05 22:57:40858ブラウズ

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

複数の列にわたる個別のカウント クエリの改善

複数の列にわたる個別の値をカウントすることは、データ分析における一般的な要件です。これを実現する 1 つの方法は、提供されたコード スニペットに示すようにサブクエリを使用することです。ただし、このアプローチはパフォーマンスに影響を与える可能性があります。

代替解決策: 永続化された計算列

このようなクエリのパフォーマンスを向上させるには、永続化された計算列の使用を検討してください。永続化された計算列は、定義された式に基づいて値を計算して保存します。この場合、ハッシュ関数または連結を使用して 2 つの列を結合する計算列を作成できます。

ALTER TABLE DocumentOutputItems ADD ComputedColumn AS HASHBYTES('MD5', DocumentId + ',' + DocumentSessionId) PERSISTED

計算列は永続化されると、高速クエリに使用できるインデックス付きの決定論的な列になります。 。この計算列の個別の値をカウントすることで、サブクエリのアプローチと同じ結果を得ることができます。

SELECT COUNT(DISTINCT ComputedColumn)
FROM DocumentOutputItems

利点:

  • パフォーマンスの向上: 永続化された計算列は、インデックス作成と統計情報。
  • データベース リソースの削減: サブクエリの代わりに単一のクエリを使用すると、データベースのリソース使用量を最小限に抑えることができます。

注: このアプローチの有効性は、データの分散とデータベース設定の適切な構成によって異なります。

以上が永続化された計算列は、複数の列にわたる個別のカウント クエリのパフォーマンスをどのように向上させることができますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。