重要
このページは英語版のページを機械翻訳しています。原文は
こちらからご覧ください。
プッシュダウンの式のリスト
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_REPLACE(json_doc, パス, val[, パス, val] ...) 、 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() |
ブロックリストの特定の表現
サポートされている表現または特定のデータ型( ENUM
型とBIT
タイプのみ)をプッシュダウンしたときに計算処理で予期しない動作が発生する場合は、該当する関数、演算子、またはデータ型のプッシュダウンを禁止することで、アプリケーションを迅速に復旧できます。具体的には、関数、演算子、またはデータ型をブロックリストmysql.expr_pushdown_blacklist
に追加することで、プッシュダウンを禁止できます。詳細については、 ブロックリストに追加を参照してください。