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

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

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

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

表現タイプオペレーション
論理演算子AND (&&)、OR (
ビット演算子 [
比較関数と演算子< <= = != (<>) > >= <=> ...と...の間 合体() で() 間隔() NULLではない ではありません 無効である 無効である() のように ...と...の間ではない ありませんで() みたいではなく STRCMP()
数値関数と演算子+ - * / 部門 % (モッド) - 腹筋() ACOS() ASIN() 日焼け() ATAN2()、ATAN() CEIL() シーリング() 変換() コス() COT() CRC32() 度() 経験値() 床() LN() ログ() LOG10() LOG2() モッド()円周率()捕虜()力()ラジアン()ランダム()ラウンド()サイン()罪()平方根()
制御フロー関数場合 もし() 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()標準デポVAR_SAMP()STDDEV_SAMP()JSON_ARRAYAGG(キー)JSON_OBJECTAGG(キー、値)
暗号化と圧縮関数MD5() SHA1()、SHA() 非圧縮長さ()
キャスト関数と演算子キャスト() , 変換する()
その他の関数UUID()

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

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

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