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

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

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

注記:

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

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

表現タイプオペレーション
論理演算子そして (&&)
または (
ビット演算子

[
比較関数と演算子<
<=
=
!= (<>)
>
>=
<=>
...と...の間
合体()
で()
間隔()
NULLではない
ではない
NULLです

ISNULL()
のように
...と...の間ではない
含まれない()
好きではない
STRCMP()
数値関数と演算子+
-
*
/
部門
% (MOD)
-
腹筋()
ACOS()
ASIN()
アタン()
ATAN2()
アタン()

CEIL()
シーリング()
変換()
コス()
COT()
CRC32()
度数()
経験値()
床()
LN()
ログ()
LOG10()
LOG2()
MOD()
円周率()
捕虜()
力()
ラジアン()
ランダム()
ラウンド()
サイン()
罪()
平方根()
制御フロー関数場合
もし()
IFNULL()
JSON関数JSON_ARRAY_APPEND()
JSON_ARRAY()
JSON_CONTAINS()
JSON_EXTRACT()
JSON_INSERT()
JSON_LENGTH()
JSON_MERGE_PATCH()
JSON_MERGE()
JSON_OBJECT()
JSON_REMOVE()
JSON_REPLACE()
JSON_SET()
JSON_TYPE()
JSON_UNQUOTE()
JSON_VALID()
メンバー()
日付と時刻関数日付()
日付フォーマット()
日付差分()
月曜()
曜日()
DAYOFYEAR()
FROM_DAYS()
時間()
作成日()
メイクタイム()
マイクロ秒()
分()
月()
月名()
PERIOD_ADD()
期間_DIFF()
SEC_TO_TIME()
2番目()
SYSDATE()
TIME_TO_SEC()
タイムディフ()
週()
週次()
年()
日付追加()
日付サブ()
追加()
サブ日付()
文字列関数ASCII()
ビット長さ()
CHAR()
CHAR_LENGTH()
連結()
CONCAT_WS()
EL() 関数
分野()
16進数()
長さ()
のように
より低い()
LTRIM()
ミッド()
好きではない
正規表現ではない
正規表現
正規表現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に追加することで、プッシュダウンを禁止できます。詳細については、 ブロックリストに追加を参照してください。

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