tencent cloud

TDSQL-C for MySQL

動向とお知らせ
製品アップデート
製品お知らせ
初心者ガイド
製品概要
プロダクト概要
製品の強み
適用シーン
製品アーキテクチャ
製品仕様
インスタンスタイプ
製品機能一覧
データベースのバージョン
リージョンとアベイラビリティゾーン
基本概念
利用制限
利用ガイドの推奨事項
自社開発カーネル
カーネル概要
カーネルバージョンのアップデート情報
カーネル最適化バージョン
機能特性
パフォーマンス関連機能
セキュリティカテゴリの機能
安定性機能
分析エンジン特性
カーネル問題のチェックと修復
購入ガイド
課金概要
製品価格
クラスタを作成する
構成変更説明
未払いについての説明
継続支払いの説明
返金ポリシー
従量課金から年/月単位サブスクリプションへの変換
従量課金からServerlessへの変換
付加価値サービスの課金説明
料金請求書の確認
クイックスタート
データベース監査
概要
監査インスタンス一覧
監査サービスを有効化する
監査ログの確認
ログ配信
事後アラーム設定
監査ルールの変更
監査サービスを変更する
監査サービスを停止する
監査ルールテンプレート
監査タスクの照会
サブユーザーへのデータベース監査利用権限付与
Serverlessサービス
Serverless入門
サーバーレス版クラスタの作成と管理
伸縮性スケーリング管理ツール
Serverlessリソースパック
マルチAZデプロイ
設定を変更する
よくあるご質問
Serverlessコスト見積ツール
操作ガイド
操作概要
コンソールでのクラスタページビューの切り替え
データベース接続
インスタンス管理
設定を変更する
インスタンス形態管理
クラスタ管理
読み取り専用インスタンス管理 
データベースプロキシ
アカウント管理
DMC
DMC(データベース管理ツール)
パラメータ設定
マルチAZデプロイ
グローバルデータベース
バックアップとリストア
操作ログ
データマイグレーション
パラレルクエリ
列ストレージインデックス CSI
分析エンジン
データベースセキュリティと暗号化
モニタリングとアラーム
SQLの基本操作
以下のコマンドを実行して、TDSQL-C for MySQLに接続してログインします
Tag
実践チュートリアル
TDSQL-C for MySQL データベース監査の等級保護実践
非InnoDBテーブル問題のワンクリック移行検出処理方法
DTSによるデータベースバージョンのアップグレード MySQL 5.7から8.0へ
TDSQL-C for MySQL 使用規範
新版コンソール
データベースプロキシの複数接続アドレスによる複数ROグループの実現
データベースプロキシのメリット
ストレージの課金モードの選び方
DTSによるリモートディザスタリカバリの構築
クラスタ用VPCの作成
データ復旧の方法
CPU使用率の高騰問題の解決方法
サブユーザーへの監視データ閲覧権限付与方法
ホワイトペーパー
セキュリティホワイトペーパー
性能ホワイトペーパー
トラブルシューティング
接続関連
性能関連
よくあるご質問
基本概念
購入と課金
サポートされるフォーマット
接続とネットワーク
機能特性
コンソールの操作
データベーステーブル
パフォーマンスとログ
データベース監査
TDSQL-C for MySQLとTencentDB for MySQLの違い
関連契約
SLA
利用規約
TDSQL-C ポリシー
プライバシーポリシー
データ処理と安全プロトコル
汎用参考
標準と認証
用語一覧
お問い合わせ

遅延マテリアライゼーション

PDF
フォーカスモード
フォントサイズ
最終更新日: 2025-12-30 16:47:25

遅延マテリアライゼーションとは何ですか。

データベースでSQLクエリを実行する際、主キーまたはインデックスキーにヒットできない場合、全表スキャン(TableScan)を行わざるを得ません。この全データスキャンのコストは通常高くなります。このプロセスを最適化するために、遅延マテリアライゼーション(Lazy Materialization)技術を採用できます。この技術は、データのマテリアライゼーションを遅延させ、クエリ実行フェーズまで必要な計算とストレージを行い、それによってクエリ性能とシステム応答速度を向上させます。
読み取り専用分析エンジンがSQLクエリを実行するプロセスでは、まず述語列を読み込み、Filter演算子を使用して計算を行い、フィルタリングされた結果を取得します。その後、読み取り専用分析エンジンはこれらのフィルタ結果に基づいて、読み取りが必要な他の列データをマテリアライズします。この方法により、非述語列の大量のフィルタリングデータに対する読み取り量が効果的に削減され、スキャン速度が向上します。

遅延マテリアライゼーションのメリット

読み取り専用分析エンジンではデータが圧縮されているため、マテリアライゼーションの過程でデータを解凍する必要があります。遅延マテリアライゼーション技術を活用することで、解凍するデータ範囲を削減でき、これにより解凍に伴うCPUオーバーヘッドを軽減できます。
データベースで複数の列に関連するSQLクエリを実行する場合、早期マテリアライゼーションでは最終結果のクエリに使用されない可能性がある列も含め、すべての列データを読み取り組み合わせる可能性があります。これに対し、遅延マテリアライゼーション戦略はデータの組み合わせプロセスを遅延させ、データベースが真に必要な列データだけを読み取り処理することを可能にします。このアプローチにより、不要なI/Oオペレーションが効果的に削減され、クエリ効率が向上します。
遅延マテリアライゼーションは、フィルタリングや集約などの操作をより効率的にします。これらの操作は行全体のデータではなく列データのみを処理すればよいためです。列ストレージの特性(データ圧縮やバッチ処理など)がより効果的に発揮され、クエリ実行速度を向上させることができます。

遅延マテリアライゼーション関連パラメータ

遅延マテリアライゼーション機能はパラメータlibra_enable_late_materializationで制御可能であり、パラメータ値がONの場合は遅延マテリアライゼーション機能が有効化されていることを意味します。
属性
説明
パラメータ型
BOOL。
既定値
ON。
値の範囲
ON:遅延マテリアライゼーション機能を有効化します。
OFF:遅延マテリアライゼーション機能を無効化します。
スコープ
Global & Session。
SET_VARヒントのサポートを提供します。
はい。
#セッション単位での遅延マテリアライゼーションの無効化
set libra_enable_late_materialization=off;
#セッション単位での遅延マテリアライゼーションの有効化
set libra_enable_late_materialization=on;

遅延マテリアライゼーションの例

下図のように、遅延マテリアライゼーションを有効化すると、実行計画でCOLUMN READオペレータを明確に確認できます。このオペレータは遅延マテリアライゼーション機能が有効になっている例です。


ヒント内での遅延マテリアライゼーションの設定方法

SET_VARヒントを使用することで、単一のSQL文内で遅延マテリアライゼーションの有効化または無効化を指定できます。例は以下の通りです。
select /*+ set_var(libra_enable_late_materialization=1)*/ * from t where c1=1 and c2=1;


ヘルプとサポート

この記事はお役に立ちましたか?

フィードバック