ホームページ >データベース >mysql チュートリアル >永続化された計算列は、複数の列にわたる個別のカウント クエリのパフォーマンスをどのように向上させることができますか?
複数の列にわたる個別のカウント クエリの改善
複数の列にわたる個別の値をカウントすることは、データ分析における一般的な要件です。これを実現する 1 つの方法は、提供されたコード スニペットに示すようにサブクエリを使用することです。ただし、このアプローチはパフォーマンスに影響を与える可能性があります。
代替解決策: 永続化された計算列
このようなクエリのパフォーマンスを向上させるには、永続化された計算列の使用を検討してください。永続化された計算列は、定義された式に基づいて値を計算して保存します。この場合、ハッシュ関数または連結を使用して 2 つの列を結合する計算列を作成できます。
ALTER TABLE DocumentOutputItems ADD ComputedColumn AS HASHBYTES('MD5', DocumentId + ',' + DocumentSessionId) PERSISTED
計算列は永続化されると、高速クエリに使用できるインデックス付きの決定論的な列になります。 。この計算列の個別の値をカウントすることで、サブクエリのアプローチと同じ結果を得ることができます。
SELECT COUNT(DISTINCT ComputedColumn) FROM DocumentOutputItems
利点:
注: このアプローチの有効性は、データの分散とデータベース設定の適切な構成によって異なります。
以上が永続化された計算列は、複数の列にわたる個別のカウント クエリのパフォーマンスをどのように向上させることができますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。