diff --git a/system-variables.md b/system-variables.md
index 27d4fec816dbc..ea576667ad420 100644
--- a/system-variables.md
+++ b/system-variables.md
@@ -3932,7 +3932,7 @@ As shown in this diagram, when [`tidb_enable_paging`](#tidb_enable_paging-new-in
- Type: Float
- Range: `[0, 18446744073709551615]`
- Default value: `3.0`
-- Indicates the CPU cost of starting a Golang goroutine in TiDB. This variable is internally used in the [Cost Model](/cost-model.md), and it is **NOT** recommended to modify its value.
+- Indicates the CPU cost of starting a Golang goroutine in TiDB. This variable is used internally by the [cost model](/cost-model.md), and it is **NOT** recommended to modify its value.
### tidb_opt_copcpu_factor
@@ -3942,7 +3942,7 @@ As shown in this diagram, when [`tidb_enable_paging`](#tidb_enable_paging-new-in
- Type: Float
- Range: `[0, 18446744073709551615]`
- Default value: `3.0`
-- Indicates the CPU cost for TiKV Coprocessor to process one row. This variable is internally used in the [Cost Model](/cost-model.md), and it is **NOT** recommended to modify its value.
+- Indicates the CPU cost for TiKV Coprocessor to process one row. This variable is used internally by the [cost model](/cost-model.md), and it is **NOT** recommended to modify its value.
### tidb_opt_correlation_exp_factor
@@ -3976,7 +3976,7 @@ As shown in this diagram, when [`tidb_enable_paging`](#tidb_enable_paging-new-in
- Type: Float
- Range: `[0, 2147483647]`
- Default value: `3.0`
-- Indicates the CPU cost for TiDB to process one row. This variable is internally used in the [Cost Model](/cost-model.md), and it is **NOT** recommended to modify its value.
+- Indicates the CPU cost for TiDB to process one row. This variable is used internally by the [cost model](/cost-model.md), and it is **NOT** recommended to modify its value.
### `tidb_opt_derive_topn` New in v7.0.0
@@ -3995,7 +3995,7 @@ As shown in this diagram, when [`tidb_enable_paging`](#tidb_enable_paging-new-in
- Type: Float
- Range: `[0, 18446744073709551615]`
- Default value: `3.0`
-- Indicates the cost for TiKV to scan one row from the disk in descending order. This variable is internally used in the [Cost Model](/cost-model.md), and it is **NOT** recommended to modify its value.
+- Indicates the cost for TiKV to scan one row from the disk in descending order. This variable is used internally by the [cost model](/cost-model.md), and it is **NOT** recommended to modify its value.
### tidb_opt_disk_factor
@@ -4005,7 +4005,7 @@ As shown in this diagram, when [`tidb_enable_paging`](#tidb_enable_paging-new-in
- Type: Float
- Range: `[0, 18446744073709551615]`
- Default value: `1.5`
-- Indicates the I/O cost for TiDB to read or write one byte of data from or to the temporary disk. This variable is internally used in the [Cost Model](/cost-model.md), and it is **NOT** recommended to modify its value.
+- Indicates the I/O cost for TiDB to read or write one byte of data from or to the temporary disk. This variable is used internally by the [cost model](/cost-model.md), and it is **NOT** recommended to modify its value.
### tidb_opt_distinct_agg_push_down
@@ -4210,7 +4210,7 @@ mysql> desc select count(distinct a) from test.t;
- Type: Float
- Range: `[0, 2147483647]`
- Default value: `0.001`
-- Indicates the memory cost for TiDB to store one row. This variable is internally used in the [Cost Model](/cost-model.md), and it is **NOT** recommended to modify its value.
+- Indicates the memory cost for TiDB to store one row. This variable is used internally by the [cost model](/cost-model.md), and it is **NOT** recommended to modify its value.
### tidb_opt_mpp_outer_join_fixed_build_side New in v5.1.0
@@ -4229,7 +4229,7 @@ mysql> desc select count(distinct a) from test.t;
- Type: Float
- Range: `[0, 2147483647]`
- Default value: `1.0`
-- Indicates the net cost of transferring 1 byte of data through the network. This variable is internally used in the [Cost Model](/cost-model.md), and it is **NOT** recommended to modify its value.
+- Indicates the net cost of transferring 1 byte of data through the network. This variable is used internally by the [cost model](/cost-model.md), and it is **NOT** recommended to modify its value.
### tidb_opt_objective New in v7.4.0
@@ -4633,7 +4633,7 @@ SHOW WARNINGS;
- Type: Float
- Range: `[0, 2147483647]`
- Default value: `1.5`
-- Indicates the cost for TiKV to scan one row of data from the disk in ascending order. This variable is internally used in the [Cost Model](/cost-model.md), and it is **NOT** recommended to modify its value.
+- Indicates the cost for TiKV to scan one row of data from the disk in ascending order. This variable is used internally by the [cost model](/cost-model.md), and it is **NOT** recommended to modify its value.
### tidb_opt_seek_factor
@@ -4643,7 +4643,7 @@ SHOW WARNINGS;
- Type: Float
- Range: `[0, 2147483647]`
- Default value: `20`
-- Indicates the start-up cost for TiDB to request data from TiKV. This variable is internally used in the [Cost Model](/cost-model.md), and it is **NOT** recommended to modify its value.
+- Indicates the start-up cost for TiDB to request data from TiKV. This variable is used internally by the [cost model](/cost-model.md), and it is **NOT** recommended to modify its value.
### tidb_opt_skew_distinct_agg New in v6.2.0
@@ -4698,6 +4698,210 @@ SHOW WARNINGS;
- Default value: `OFF`
- This variable is used to control whether to allow `INSERT`, `REPLACE`, and `UPDATE` statements to operate on the `_tidb_rowid` column. This variable can be used only when you import data using TiDB tools.
+### tidb_opt_hash_agg_cost_factor New in v8.5.3 and v9.0.0
+
+> **Warning:**
+>
+> This variable is used internally by the [cost model](/cost-model.md), and it is **NOT** recommended to modify its value.
+
+- Scope: SESSION | GLOBAL
+- Applies to hint [SET_VAR](/optimizer-hints.md#set_varvar_namevar_value): Yes
+- Type: Float
+- Range: `[0, 2147483647]`
+- Default value: `1`
+
+### tidb_opt_hash_join_cost_factor New in v8.5.3 and v9.0.0
+
+> **Warning:**
+>
+> This variable is used internally by the [cost model](/cost-model.md), and it is **NOT** recommended to modify its value.
+
+- Scope: SESSION | GLOBAL
+- Applies to hint [SET_VAR](/optimizer-hints.md#set_varvar_namevar_value): Yes
+- Type: Float
+- Range: `[0, 2147483647]`
+- Default value: `1`
+
+### tidb_opt_index_join_cost_factor New in v8.5.3 and v9.0.0
+
+> **Warning:**
+>
+> This variable is used internally by the [cost model](/cost-model.md), and it is **NOT** recommended to modify its value.
+
+- Scope: SESSION | GLOBAL
+- Applies to hint [SET_VAR](/optimizer-hints.md#set_varvar_namevar_value): Yes
+- Type: Float
+- Range: `[0, 2147483647]`
+- Default value: `1`
+
+### tidb_opt_index_lookup_cost_factor New in v8.5.3 and v9.0.0
+
+> **Warning:**
+>
+> This variable is used internally by the [cost model](/cost-model.md), and it is **NOT** recommended to modify its value.
+
+- Scope: SESSION | GLOBAL
+- Applies to hint [SET_VAR](/optimizer-hints.md#set_varvar_namevar_value): Yes
+- Type: Float
+- Range: `[0, 2147483647]`
+- Default value: `1`
+
+### tidb_opt_index_merge_cost_factor New in v8.5.3 and v9.0.0
+
+> **Warning:**
+>
+> This variable is used internally by the [cost model](/cost-model.md), and it is **NOT** recommended to modify its value.
+
+- Scope: SESSION | GLOBAL
+- Applies to hint [SET_VAR](/optimizer-hints.md#set_varvar_namevar_value): Yes
+- Type: Float
+- Range: `[0, 2147483647]`
+- Default value: `1`
+
+### tidb_opt_index_reader_cost_factor New in v8.5.3 and v9.0.0
+
+> **Warning:**
+>
+> This variable is used internally by the [cost model](/cost-model.md), and it is **NOT** recommended to modify its value.
+
+- Scope: SESSION | GLOBAL
+- Applies to hint [SET_VAR](/optimizer-hints.md#set_varvar_namevar_value): Yes
+- Type: Float
+- Range: `[0, 2147483647]`
+- Default value: `1`
+
+### tidb_opt_index_scan_cost_factor New in v8.5.3 and v9.0.0
+
+> **Warning:**
+>
+> This variable is used internally by the [cost model](/cost-model.md), and it is **NOT** recommended to modify its value.
+
+- Scope: SESSION | GLOBAL
+- Applies to hint [SET_VAR](/optimizer-hints.md#set_varvar_namevar_value): Yes
+- Type: Float
+- Range: `[0, 2147483647]`
+- Default value: `1`
+
+### tidb_opt_limit_cost_factor New in v8.5.3 and v9.0.0
+
+> **Warning:**
+>
+> This variable is used internally by the [cost model](/cost-model.md), and it is **NOT** recommended to modify its value.
+
+- Scope: SESSION | GLOBAL
+- Applies to hint [SET_VAR](/optimizer-hints.md#set_varvar_namevar_value): Yes
+- Type: Float
+- Range: `[0, 2147483647]`
+- Default value: `1`
+
+### tidb_opt_merge_join_cost_factor New in v8.5.3 and v9.0.0
+
+> **Warning:**
+>
+> This variable is used internally by the [cost model](/cost-model.md), and it is **NOT** recommended to modify its value.
+
+- Scope: SESSION | GLOBAL
+- Applies to hint [SET_VAR](/optimizer-hints.md#set_varvar_namevar_value): Yes
+- Type: Float
+- Range: `[0, 2147483647]`
+- Default value: `1`
+
+### tidb_opt_sort_cost_factor New in v8.5.3 and v9.0.0
+
+> **Warning:**
+>
+> This variable is used internally by the [cost model](/cost-model.md), and it is **NOT** recommended to modify its value.
+
+- Scope: SESSION | GLOBAL
+- Applies to hint [SET_VAR](/optimizer-hints.md#set_varvar_namevar_value): Yes
+- Type: Float
+- Range: `[0, 2147483647]`
+- Default value: `1`
+
+### tidb_opt_stream_agg_cost_factor New in v8.5.3 and v9.0.0
+
+> **Warning:**
+>
+> This variable is used internally by the [cost model](/cost-model.md), and it is **NOT** recommended to modify its value.
+
+- Scope: SESSION | GLOBAL
+- Applies to hint [SET_VAR](/optimizer-hints.md#set_varvar_namevar_value): Yes
+- Type: Float
+- Range: `[0, 2147483647]`
+- Default value: `1`
+
+### tidb_opt_table_full_scan_cost_factor New in v8.5.3 and v9.0.0
+
+> **Warning:**
+>
+> This variable is used internally by the [cost model](/cost-model.md), and it is **NOT** recommended to modify its value.
+
+- Scope: SESSION | GLOBAL
+- Applies to hint [SET_VAR](/optimizer-hints.md#set_varvar_namevar_value): Yes
+- Type: Float
+- Range: `[0, 2147483647]`
+- Default value: `1`
+
+### tidb_opt_table_range_scan_cost_factor New in v8.5.3 and v9.0.0
+
+> **Warning:**
+>
+> This variable is used internally by the [cost model](/cost-model.md), and it is **NOT** recommended to modify its value.
+
+- Scope: SESSION | GLOBAL
+- Applies to hint [SET_VAR](/optimizer-hints.md#set_varvar_namevar_value): Yes
+- Type: Float
+- Range: `[0, 2147483647]`
+- Default value: `1`
+
+### tidb_opt_table_reader_cost_factor New in v8.5.3 and v9.0.0
+
+> **Warning:**
+>
+> This variable is used internally by the [cost model](/cost-model.md), and it is **NOT** recommended to modify its value.
+
+- Scope: SESSION | GLOBAL
+- Applies to hint [SET_VAR](/optimizer-hints.md#set_varvar_namevar_value): Yes
+- Type: Float
+- Range: `[0, 2147483647]`
+- Default value: `1`
+
+### tidb_opt_table_rowid_cost_factor New in v8.5.3 and v9.0.0
+
+> **Warning:**
+>
+> This variable is used internally by the [cost model](/cost-model.md), and it is **NOT** recommended to modify its value.
+
+- Scope: SESSION | GLOBAL
+- Applies to hint [SET_VAR](/optimizer-hints.md#set_varvar_namevar_value): Yes
+- Type: Float
+- Range: `[0, 2147483647]`
+- Default value: `1`
+
+### tidb_opt_table_tiflash_scan_cost_factor New in v8.5.3 and v9.0.0
+
+> **Warning:**
+>
+> This variable is used internally by the [cost model](/cost-model.md), and it is **NOT** recommended to modify its value.
+
+- Scope: SESSION | GLOBAL
+- Applies to hint [SET_VAR](/optimizer-hints.md#set_varvar_namevar_value): Yes
+- Type: Float
+- Range: `[0, 2147483647]`
+- Default value: `1`
+
+### tidb_opt_topn_cost_factor New in v8.5.3 and v9.0.0
+
+> **Warning:**
+>
+> This variable is used internally by the [cost model](/cost-model.md), and it is **NOT** recommended to modify its value.
+
+- Scope: SESSION | GLOBAL
+- Applies to hint [SET_VAR](/optimizer-hints.md#set_varvar_namevar_value): Yes
+- Type: Float
+- Range: `[0, 2147483647]`
+- Default value: `1`
+
### tidb_optimizer_selectivity_level
- Scope: SESSION