すべてのプロダクト
Search
ドキュメントセンター

PolarDB:パラレルクエリシナリオにおけるパフォーマンステスト結果

最終更新日:May 30, 2025

このトピックでは、TPC-H ベンチマークを使用して、PolarDB for MySQL 8.0.1 および 8.0.2 クラスタ版 クラスタのオンライン分析処理 (OLAP) パフォーマンスをテストする方法について説明します。このトピックの手順に従って、データベースのパフォーマンスをテストできます。

パラレルクエリ

PolarDB for MySQL 8.0 クラスタ版 は、クエリの応答時間を短縮するためのパラレルクエリ機能を提供します。この機能は、クエリ対象のデータ量が指定されたしきい値を超えると自動的に有効になります。詳細については、「概要」をご参照ください。

PolarDB for MySQL 8.0.1 クラスタのストレージレイヤーでは、データシャードは異なるスレッドに分散されます。複数のスレッドが並列計算を実行し、結果をリーダー スレッドに順番に返します。次に、リーダー スレッドが結果をマージし、最終結果をユーザーに返します。これにより、クエリ効率が向上します。

PolarDB for MySQL 8.0.2 では、パラレルクエリの線形加速機能が新たなレベルに引き上げられ、多段階並列計算機能が提供されます。コストベースの最適化により、より柔軟な並列実行プランが可能になり、PolarDB for MySQL 8.0.1 のパラレルクエリで発生する可能性のある単一リーダー スレッドのパフォーマンス ボトルネックとワーカーの負荷の不均衡が解消されます。具体的には、データシャードは引き続きストレージレイヤーで異なるスレッドに分散されます。複数のスレッドが並列計算を実行し、データシャードを次のフェーズの並列ワーカー グループに分散します。次に、リーダー スレッドが計算結果をマージし、最終結果をユーザーに返します。これにより、並列実行機能が大幅に向上します。

パラレルクエリは、マルチコア CPU の並列処理機能に基づいて実現されます。次の図は、8 コア 32 GB メモリのクラスタでの並列処理を示しています。

A PolarDB for MySQL cluster

次の表は、PolarDB 8.0.1 および 8.0.2 クラスタの OLAP テスト用に設定されたパラレルクエリ パラメーターの値を示しています。パラレルクエリ パラメーターの構成方法の詳細については、「クラスタ パラメーターとノード パラメーターの構成」をご参照ください。テストツール、メソッド、および結果の詳細については、「パラレルクエリのパフォーマンステスト」および「テスト結果」をご参照ください。

  • 8.0.1

    パラメーター

    デフォルト値

    有効な値 (オプション 1)

    loose_parallel_degree_policy

    REPLICA_AUTO

    TYPICAL

    loose_max_parallel_degree

    0

    16

  • 8.0.2

    パラメーター

    デフォルト値

    有効な値 (オプション 1)

    loose_parallel_degree_policy

    REPLICA_AUTO

    TYPICAL

    loose_parallel_query_switch

    ''

    'force_run_using_planning_dop=on'

    loose_optimizer_switch

    ''

    'hash_join_cost_based=off'

    loose_max_parallel_degree

    0

    16

説明

loose_parallel_degree_policy が TYPICAL に設定されている場合、PolarDB はデータベースのリソース使用量 (CPU 使用率など) を無視し、並列処理の次数 (DOP) を loose_max_parallel_degree パラメーターの値に設定します。

テスト結果

  • 次の表に、PolarDB 8.0.1 のテスト結果を示します。

    クエリ

    デフォルト値の期間 (単位: 秒)

    有効な値 (オプション 1) の期間 (単位: 秒)

    Q1

    2495.05

    86.63

    Q2

    13.18

    1.46

    Q3

    345.56

    28.67

    Q4

    63.78

    6.26

    Q5

    251.48

    258.55

    Q6

    241.7

    16.4

    Q7

    174.91

    171.85

    Q8

    560.82

    572.63

    Q9

    450.68

    42.17

    Q10

    895.75

    270.29

    Q11

    30.03

    11.6

    Q12

    266.14

    17.65

    Q13

    780.74

    127.1

    Q14

    72.04

    7.57

    Q15

    261.77

    56.55

    Q16

    40.69

    24.29

    Q17

    57.75

    13.04

    Q18

    257.66

    136.79

    Q19

    19.17

    1.52

    Q20

    143.97

    49.72

    Q21

    293.99

    37.79

    Q22

    18.81

    2.15

    1.png

  • 次の表に、PolarDB 8.0.2 のテスト結果を示します。

    クエリ

    デフォルト値の期間 (単位: 秒)

    有効な値 (オプション 1) の期間 (単位: 秒)

    Q1

    573.34

    89.65

    Q2

    3.62

    0.66

    Q3

    96.89

    28.52

    Q4

    18.66

    6.41

    Q5

    150.93

    28.93

    Q6

    68.13

    17.13

    Q7

    114.56

    17.39

    Q8

    333.36

    54.32

    Q9

    136.26

    42.15

    Q10

    325.19

    128.55

    Q11

    11.49

    4.53

    Q12

    121.68

    17.54

    Q13

    281.1

    126.2

    Q14

    23.34

    7.59

    Q15

    77.22

    33.02

    Q16

    12.15

    8.96

    Q17

    4.51

    1.13

    Q18

    325.05

    133.07

    Q19

    5.37

    1.5

    Q20

    70.31

    90.75

    Q21

    171.81

    29.87

    Q22

    6.05

    2.16

    2.png