プッシュダウンの式のリスト

TiDB が TiKV からデータを読み取るとき、TiDB はいくつかの式 (関数または演算子の計算を含む) を TiKV に処理するようプッシュダウンしようとします。これにより、転送されるデータの量が削減され、単一の TiDB ノードからの処理がオフロードされます。このドキュメントでは、TiDB がすでにプッシュダウンをサポートしている式と、ブロックリストを使用して特定の式のプッシュダウンを禁止する方法を紹介します。

TiFlash は、関数と演算子のプッシュダウンもサポートしていますこのページに記載されている

TiKV へのプッシュダウンでサポートされる式

式のタイプオペレーション
論理演算子AND (&&)、OR (
ビット演算子& [
比較関数と演算子< <= = != (<>) > >= <=> ...と...の間 合体() で() 間隔() NULL ではありません ではありません 無効である 無効である() のように ...と...の間ではありません ありませんで() みたいではなく STRCMP()
数値関数と演算子+ - * / ディビジョン % (モッド) - ABS() アコス() ASIN() 日焼け() ATAN2()、ATAN() CEIL() シーリング() 変換() COS() COT() CRC32() 度() 経験値() 床() LN() ログ() LOG10() LOG2() モッド()PI()捕虜()力()ラジアン()ランド()ラウンド()サイン()罪()SQRT()
制御フロー関数場合 もし() IFNULL()
JSON関数JSON_ARRAY([val[, val] ...])
JSON_CONTAINS(ターゲット, 候補[, パス])
JSON_EXTRACT(json_doc, パス[, パス] ...)
JSON_INSERT(json_doc, パス, val[, パス, val] ...)
JSON_LENGTH(json_doc[, パス])
JSON_MERGE(json_doc, json_doc[, json_doc] ...)
JSON_OBJECT([キー, val[, キー, val] ...])
JSON_REMOVE(json_doc, パス[, パス] ...)
JSON_REPLACE(json_doc, パス, val[, パス, val] ...)
JSON_SET(json_doc, パス, val[, パス, val] ...)
JSON_TYPE(json_val)
JSON_UNQUOTE(json_val)
JSON_VALID(val)
日付と時刻の関数日付() DATE_FORMAT() DATEDIFF() DAYOFMONTH() 曜日() DAYOFYEAR() FROM_DAYS() 時間() 作成日() 時間を作ります() マイクロ秒() 分() 月() 月名() PERIOD_ADD() PERIOD_DIFF() SEC_TO_TIME() 2番目() SYSDATE() TIME_TO_SEC() 時間差() 週() ウィーコフィイヤー() 年()
文字列関数アスキー() BIT_LENGTH() CHAR() CHAR_LENGTH() CONCAT() CONCAT_WS() ELT() 分野() 16 進数() 長さ() のように LTRIM() ミッド() みたいではなく 正規表現ではありません 正規表現 交換する() 逆行する() 右() RTRIM() 空間() STRCMP() SUBSTR() 部分文字列()
集計関数カウント()カウント(個別)和()平均()MAX()分()分散()VAR_POP()STD()STDDEV()STDDEV_POPVAR_SAMP()STDDEV_SAMP()JSON_ARRAYAGG(キー)JSON_OBJECTAGG(キー, 値)
暗号化・圧縮関数MD5() SHA1()、SHA() UNCOMPRESSED_LENGTH()
キャスト関数と演算子キャスト() 変換する()
その他の関数UUID()

ブロックリスト固有の式

サポートされている式または特定のデータ型 ( ENUMタイプBITタイプのみ) をプッシュダウンするときに計算プロセスで予期しない動作が発生した場合、対応する関数、演算子、またはデータ型のプッシュダウンを禁止することで、アプリケーションを迅速に復元できます。具体的には、関数、演算子、またはデータ型をブロックリストmysql.expr_pushdown_blacklistに追加することで、それらのプッシュダウンを禁止できます。詳細はブロックリストに追加するを参照してください。

このページは役に立ちましたか?