プッシュダウンの式一覧

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

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

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

式タイプオペレーション
論理演算子AND (&&), OR (||), NOT (!), XOR
ビット演算子&, ~, |, ^, <<, >>
比較関数と演算子<, <=, =, != (<>), >, >=, <=>, BETWEEN ... AND ..., COALESCE(), IN(), INTERVAL(), IS NOT NULL, IS NOT, IS NULL, IS, ISNULL(), LIKE, NOT BETWEEN ... AND ..., NOT IN(), NOT LIKE, STRCMP()
数値関数と演算子+, -, *, /, DIV, % (MOD), -, ABS(), ACOS(), ASIN(), ATAN(), ATAN2(), ATAN(), CEIL(), CEILING(), CONV(), COS(), COT(), CRC32(), DEGREES(), EXP(), FLOOR(), LN(), LOG(), LOG10(), LOG2(), MOD(), PI(), POW(), POWER(), RADIANS(), RAND(), ROUND(), SIGN(), SIN(), SQRT()
制御フロー関数CASE, IF(), IFNULL()
JSON関数JSON_ARRAY([val[, val] ...]),
JSON_CONTAINS(target, candidate[, path]),
JSON_EXTRACT(json_doc, path[, path] ...),
JSON_INSERT(json_doc, path, val[, path, val] ...),
JSON_LENGTH(json_doc[, path]),
JSON_MERGE(json_doc, json_doc[, json_doc] ...),
JSON_OBJECT([key, val[, key, val] ...]),
JSON_REMOVE(json_doc, path[, path] ...),
JSON_REPLACE(json_doc, path, val[, path, val] ...),
JSON_SET(json_doc, path, val[, path, val] ...),
JSON_TYPE(json_val),
JSON_UNQUOTE(json_val),
JSON_VALID(val)
日付と時刻関数DATE(), DATE_FORMAT(), DATEDIFF(), DAYOFMONTH(), DAYOFWEEK(), DAYOFYEAR(), FROM_DAYS(), HOUR(), MAKEDATE(), MAKETIME(), MICROSECOND(), MINUTE(), MONTH(), MONTHNAME(), PERIOD_ADD(), PERIOD_DIFF(), SEC_TO_TIME(), SECOND(), SYSDATE(), TIME_TO_SEC(), TIMEDIFF(), WEEK(), WEEKOFYEAR(), YEAR()
文字列関数ASCII(), BIT_LENGTH(), CHAR(), CHAR_LENGTH(), CONCAT(), CONCAT_WS(), ELT(), FIELD(), HEX(), LENGTH(), LIKE, LTRIM(), MID(), NOT LIKE, NOT REGEXP, REGEXP, REPLACE(), REVERSE(), RIGHT(), RTRIM(), SPACE(), STRCMP(), SUBSTR(), SUBSTRING()
集計関数COUNT(), COUNT(DISTINCT), SUM(), AVG(), MAX(), MIN(), VARIANCE(), VAR_POP(), STD(), STDDEV(), STDDEV_POP, VAR_SAMP(), STDDEV_SAMP(), JSON_ARRAYAGG(key), JSON_OBJECTAGG(key, value)
暗号化および圧縮関数MD5(), SHA1(), SHA(), UNCOMPRESSED_LENGTH()
キャスト関数と演算子CAST(), CONVERT()
その他の関数UUID()

ブロックリスト固有の式

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

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