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

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

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

注記:

Aggregate関数は、 ウィンドウ関数として使用される場合、 TiKV へのプッシュダウンをサポートしません。

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

表現タイプオペレーション
論理演算子AND (&&)、OR (
ビット演算子 [
比較関数と演算子< <= = != (<>) > >= <=> ...と...の間 合体() で() 間隔() NULLではない ではない NULLです ISNULL() のように ...と...の間ではない 含まれない() 好きではない STRCMP()
数値関数と演算子+ - * / 部門 % (MOD) - 腹筋() ACOS() ASIN() アタン() ATAN2()、ATAN() CEIL() シーリング() 変換() コス() COT() CRC32() 度数() 経験値() 床() LN() ログ() LOG10() LOG2()MOD()円周率()捕虜()力()ラジアン()ランダム()ラウンド()サイン()罪()平方根()
制御フロー関数場合 もし() 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([キー、値[、キー、値] ...])
JSON_REMOVE(json_doc, パス[, パス] ...)
JSON_SET(json_doc、パス、val[、パス、val]...)
JSON_TYPE(json_val)
JSON_UNQUOTE(json_val) ,
JSON_VALID(値)
値 MEMBER OF(json_array)
日付と時刻関数日付() 日付フォーマット() 日付差分() 月曜() 曜日() DAYOFYEAR() FROM_DAYS() 時間() 作成日() メイクタイム() マイクロ秒() 分() 月() 月名() PERIOD_ADD() 期間_DIFF() SEC_TO_TIME() 2番目() SYSDATE() TIME_TO_SEC() タイムディフ() 週() 週次() 年()
文字列関数ASCII() ビット長さ() CHAR() CHAR_LENGTH() 連結() CONCAT_WS() EL() 関数 分野() 16進数() 長さ() のように より低い() LTRIM() ミッド() 好きではない 正規表現ではない 正規表現 正規表現INSTR() 正規表現LIKE() 正規表現置換() 正規表現SUBSTR() 交換する() 逆行する() 右() RLIKE RTRIM() 空間() STRCMP() SUBSTR() 部分文字列() アッパー()
集計関数カウント()COUNT(DISTINCT)和()平均()最大()最小値()分散()VAR_POP()標準偏差()STDDEV()STDDEV_POPVAR_SAMP()STDDEV_SAMP()JSON_ARRAYAGG(キー)JSON_OBJECTAGG(キー、値)
暗号化と圧縮関数MD5() SHA1()、SHA() 非圧縮長さ()
キャスト関数と演算子キャスト() , 変換する()
その他の関数UUID()
ウィンドウ関数なし

ブロックリストの特定の表現

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

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