tencent cloud

フィードバック

コンピューティングプッシュダウン

最終更新日:2022-03-02 22:30:48

    機能の説明

    この機能は単一テーブルクエリのLIMIT/OFFSETまたはSUM操作をInnoDBにプッシュダウンすることで、照会の遅延を効果的に低下させるものです。

    • LIMIT/OFFSETをセカンダリインデックスにプッシュダウンする際、この機能によってテーブルからの「リターン」操作が回避され、スキャンコストが効果的に低下します。
    • SUM操作をInnoDBにプッシュダウンする際、InnoDB層でコンピューティングを行って「最終」の結果を返すことで、Server層とInnoDBエンジン層が「1行ごとに」記録を繰り返すコストを節約します。

    サポートするバージョン

    • LIMIT/OFFSETの最適化に対応するカーネルバージョン MySQL 5.7 20180530
    • SUM操作のプッシュダウンの最適化に対応するカーネルバージョン MySQL 5.7 20180918

    ユースケース

    • この機能は主に、単一テーブルクエリにLIMIT/OFFSETまたはSUMが存在するケース、例えばSelect *from tbl Limit 10”、“Select* from tbl Limit 10,2Select sum(c1) from tblなどのステートメントに対応します。
    • 最適化できないケース:
      • 照会ステートメントにdistinct、group by、havingが存在する場合。
      • ネストの照会が存在する場合。
      • FULLTEXTインデックスを使用している場合。
      • order byが存在し、かつオプティマイザがindexを利用してorder byを実装できない場合。
      • マルチレンジリード(MRR)を使用している場合。
      • SQL_CALC_FOUND_ROWSが存在する場合。

    パフォーマンスデータ

    sysbenchに100万行のデータをインポート後:

    • select * from sbtest1 limit 1000000,1;の実行時間は6.3秒から2.8秒に短縮されました。
    • select sum(k) from sbtest1;の実行時間は5.4秒から1.5秒に短縮されました。

    利用説明

    SQLの実行中に、対応する機能制御パラメータのオンオフ状況に基づいて、クエリオプティマイザが自動的に照会実行計画を書き換えることで、コンピューティングプッシュダウンの最適化を行います。
    パラメータは次のとおりです。

    パラメータ名 動的 タイプ デフォルト パラメータ値範囲 説明
    cdb_enable_offset_pushdown Yes bool ON {ON,OFF} LIMIT/OFFSETプッシュダウンを制御。デフォルトではオン
    cdb_enable_sumagg_pushdown Yes bool OFF {ON,OFF} SUMプッシュダウンを制御。デフォルトではオフ
    説明:

    ユーザーは現在、上記パラメータのパラメータ値を直接変更することはできません。変更する場合は、チケットを提出から変更することができます。

    お問い合わせ

    カスタマーサービスをご提供できるため、ぜひお気軽にお問い合わせくださいませ。

    テクニカルサポート

    さらにサポートが必要な場合は、サポートチケットを送信して弊社サポートチームにお問い合わせください。24時間365日のサポートをご提供します。

    電話サポート(24 時間365日対応)