描述
動態參數類似的資料庫中的PrepareStatement。使用者可以在SQL中設定placeholder(?表示),同時傳遞placeholder對應的值。引擎內部會自動替換。
動態參數主要用於提高Cache命中率,對於查詢模式固定的情境效能提升明顯。
注意動態參數只能替換值,不支援關鍵字或欄位替換。
樣本
樣本1
SELECT i1, cast(? as bigint) FROM t1 WHERE (i2 > 5 AND d3 < 10.1) OR s5 = ?
為了替換掉SQL中的動態參數(也就是"?"),具體如下:
dynamic_params:[[10, "str5"]]
樣本2
SELECT
price,
title,
compute(
longitude,
latitude,
city_id,
CAST(? AS double),
CAST(? AS double),
CAST(1 AS bigint)
) AS distance
FROM
store,
unnest(store.sub_table)
WHERE
MATCHINDEX('shop', ?)
AND QUERY(name, ?)
dynamic_params:[[119.98844256998,
36.776817017143,
"excellect",
"水果 OR 西瓜"]]