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 ポリシー
プライバシーポリシー
データ処理と安全プロトコル
汎用参考
標準と認証
用語一覧
お問い合わせ
ドキュメントTDSQL-C for MySQL操作ガイドパラレルクエリ概要サポートされるステートメントシナリオと制限シナリオ

サポートされるステートメントシナリオと制限シナリオ

PDF
フォーカスモード
フォントサイズ
最終更新日: 2025-12-30 16:39:26
本稿は並列クエリ機能でサポートされるステートメントシナリオと制限シナリオを紹介します。

サポートされるステートメントシナリオ

TDSQL-C for MySQL は、以下の特徴を備えた SQL文 のパラレルクエリ処理をすでに実現しました。そして、より多くの機能シナリオを徐々に充実させています。
機能シナリオ
サポート対象のTXSQLエンジンカーネルバージョン
説明
単一テーブルスキャン
TXSQL 8.0 3.1.15.001以上
フルテーブルスキャン、インデックススキャン、インデックス範囲スキャン、インデックスREFクエリなどのスキャンタイプにおける順方向・逆方向スキャンをサポートしています。
複数テーブル結合
Nested Loop JoinアルゴリズムおよびSemi Join、Anti Join、Outer Joinなどの結合タイプをサポートします。
データ型
複数のデータ型を含むクエリをサポートします。整数型データ、文字列型データ、浮動小数点型データ、日時型データ、および(ランタイムサイズ制限のある)オーバーフロー型データなどが含まれます。
一般的な演算子と関数
一般的な演算子と関数は原則として制限されません。
集計関数
COUNT/SUM/AVG/MIN/MAX/STD/VARIANCE/VAR_SAMP/STDDEV_SAMPをサポートします。
UNION/UNION ALL
UNION/UNION ALLクエリをサポートします。
EXPLAIN
traditional(デフォルトフォーマット)、json、および tree の3種のEXPLAINフォーマットをサポートします。
PSモードの並列実行
PSモードの並列実行をサポートします。PREPARE STATEMENTにより、ステートメントは構文解析を1回のみ行い、複数回実行することが可能です。前処理されたPrepareステートメントは、変数の値を変更するだけで使用可能になり、パフォーマンスの向上をもたらします。
Hash join(in memory)の並列実行
ハッシュ結合(インメモリ)の並列実行をサポートします。
サブクエリの派生テーブルの個別並列実行
サブクエリの派生テーブルを個別に並列実行することをサポートし、メインクエリとは独立して実行されます。
ROLL UPの並列実行
ROLL UPの並列実行をサポートします。
EXPLAIN ANALYZEの並列実行
EXPLAIN ANALYZEの並列実行をサポートします。
パーティションテーブルを並列クエリの並列テーブルとして
パーティションテーブルを並列クエリの並列テーブルとしてサポートします。
グローバル集約最適化
グローバル集約最適化をサポートします。
having条件のプッシュダウン並列化
having条件のプッシュダウン並列化をサポートします。
対応するステートメントのパフォーマンス向上 SF=100、Dop=16設定で、高速化比率は以下の通りです。
SUM/AVG/COUNTなどの集計関数。
SELECT l_returnflag, l_linestatus,
Sum(l_quantity) AS sum_qty,
Sum(l_extendedprice) AS sum_base_price,
Sum(l_extendedprice * (1 - l_discount)) AS sum_disc_price,
Sum(l_extendedprice * (1 - l_discount) * (1 + l_tax)) AS sum_charge,
Avg(l_quantity) AS avg_qty,
Avg(l_extendedprice) AS avg_price,
Avg(l_discount) AS avg_disc,
Count(*) AS count_order FROM
lineitem WHERE l_shipdate <= date '1998-12-01' - INTERVAL '93' day
GROUP BY l_returnflag, l_linestatus ORDER BY l_returnflag, l_linestatus ;
パラレルクエリを有効にしていない場合の実行時間は1376.96秒で、有効にした場合の実行時間は107.25秒です。高速化倍率は最大12.84倍に達します。
order by/group by グループ化/ソート文。
SELECT l_returnflag, l_linestatus,
Sum(l_quantity) AS sum_qty,
Sum(l_extendedprice) AS sum_base_price,
Sum(l_extendedprice * (1 - l_discount)) AS sum_disc_price,
Sum(l_extendedprice * (1 - l_discount) * (1 + l_tax)) AS sum_charge,
Avg(l_quantity) AS avg_qty,
Avg(l_extendedprice) AS avg_price,
Avg(l_discount) AS avg_disc,
Count(*) AS count_order FROM
lineitem WHERE l_shipdate <= date '1998-12-01' - INTERVAL '93' day
GROUP BY l_returnflag, l_linestatus ORDER BY l_returnflag, l_linestatus ;
パラレルクエリを有効にしていない場合の実行時間は1376.96秒で、有効にした場合の実行時間は107.25秒です。高速化倍率は最大12.84倍に達します。
Join/Between/In 文
select
sum(l_extendedprice* (1 - l_discount)) as revenue
from
lineitem,
part
where
(
p_partkey = l_partkey
and p_brand = 'Brand#12'
and p_container in ('SM CASE', 'SM BOX', 'SM PACK', 'SM PKG')
and l_quantity >= 6
and l_quantity <= 6 + 10
and p_size between 1 and 5
and l_shipmode in ('AIR', 'AIR REG')
and l_shipinstruct = 'DELIVER IN PERSON'
)
or
(
p_partkey = l_partkey
and p_brand = 'Brand#13'
and p_container in ('MED BAG', 'MED BOX', 'MED PKG', 'MED PACK')
and l_quantity >= 10 and l_quantity <= 10 + 10
and p_size between 1 and 10
and l_shipmode in ('AIR', 'AIR REG')
and l_shipinstruct = 'DELIVER IN PERSON'
)
or
(
p_partkey = l_partkey
and p_brand = 'Brand#24'
and p_container in ('LG CASE', 'LG BOX', 'LG PACK', 'LG PKG')
and l_quantity >= 21
and l_quantity <= 21 + 10
and p_size between 1 and 15
and l_shipmode in ('AIR', 'AIR REG')
and l_shipinstruct = 'DELIVER IN PERSON'
);
パラレルクエリを有効にしていない場合のクエリ時間は20.55秒で、有効にした後の高速化時間は1.87秒です。高速化倍率は最大11倍に達します。

制限シナリオ

TDSQL-C for MySQLのパラレルクエリ機能がサポートしていないシナリオは以下の通りです。
制限項目
制限の説明
ステートメント互換性の制限
非クエリ文はパラレルクエリをサポートしていません。INSERT ... SELECT および REPLACE ... SELECT を含みます。
ストアドプログラム内のクエリ文は並列化できません。
シリアライザブル分離レベルのトランザクション内のクエリ文は並列化できません。
ロック付き読み取り文は並列化できません。例:select for update/share lock。
CTEは並列化できません。
テーブル/インデックス互換性の制限
クエリ対象がシステムテーブル/一時テーブル/非Innodbテーブルの場合、並列化できません。
空間インデックスは並列化できません。
全文検索インデックスは並列化できません。
スキャン方式がindex_mergeであるテーブルは並列化できません。
式/Fieldの互換性制限
Generated Column、BITおよびGEOMETRYフィールドを含むSQLクエリは並列化できません。
説明:
BLOB、TEXT、JSONフィールドを含むSQLクエリは、TXSQL 8.0エンジンのカーネルバージョンが3.1.14以上の場合、並列化をサポートします。前提条件として、パラメータtxsql_parallel_lob_enabledの実行値をONに設定する必要があります。操作方法については、インスタンスパラメータの設定を参照してください。
BIT_AND、BIT_XOR、BIT_ORタイプの集約関数は並列化できません。
aggregation(distinct)を伴う集約関数(例:SUM(DISTINCT), COUNT(DISTINCT)など)は並列化できません。
GIS関連関数(例:SP_WITHIN_FUNC、ST_DISTANCEなど)は並列化できません。
ユーザー定義関数は並列化できません。
json関連の関数は並列化できません(例:json_length、json_type、JSON_ARRAYAGGなど)。
XMLに関連する関数は並列化できません(xml_str)。
ユーザーロック関連の関数は並列化できません(is_free_lock、is_used_lock、release_lock、release_all_locks、get_lock)。
sleep関数、random関数、GROUP_CONCAT関数、set_user_var関数、weight_string関数は並列化できません。
ウィンドウ関数は並列化できません。
パラレルクエリ互換ステートメントシナリオ</1>を通じてステートメントがパラレルクエリ実行されたかどうかを確認できるだけでなく、パラレルクエリ実行計画の参照やスレッドの作業状態を参照することで確認することも可能です。詳細はパラレルクエリの参照をご覧ください。

ヘルプとサポート

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

フィードバック