diff --git a/optimizer-fix-controls.md b/optimizer-fix-controls.md index 2af25aa22ce31..f34129f868181 100644 --- a/optimizer-fix-controls.md +++ b/optimizer-fix-controls.md @@ -71,6 +71,14 @@ SET SESSION tidb_opt_fix_control = '44262:ON,44389:ON'; - This variable sets the threshold for the optimizer's heuristic strategy to select access paths. If the estimated rows for an access path (such as `Index_A`) is much smaller than that of other access paths (default `1000` times), the optimizer skips the cost comparison and directly selects `Index_A`. - `0` means to disable this heuristic strategy. +### [`47400`](https://github.com/pingcap/tidb/issues/47400) New in v8.4.0 + +- Default value: `ON` +- Possible values: `ON`, `OFF` +- Due to challenges in accurately estimating the number of qualified rows for each plan step in a query plan, the optimizer might estimate a smaller value for `estRows`. This variable controls whether to limit the minimum value of `estRows`. +- `ON`: limits the minimum value of `estRows` to 1, which is the new behavior introduced in v8.4.0 and is consistent with other databases, such as Oracle and DB2. +- `OFF`: disables the minimum row estimate limit, which maintains the behavior consistent with versions before v8.4.0. In this case, `estRows` might be zero. + ### [`52592`](https://github.com/pingcap/tidb/issues/52592) New in v8.4.0 - Default value: `OFF`