[WIP] add v8.5.7 release notes#23061
Conversation
There was a problem hiding this comment.
Code Review
This pull request introduces a release notes template for TiDB 8.5.7. The review feedback requests adding a blank line after the "## Bug fixes" heading to comply with the repository's style guide on heading spacing.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
|
@JaySon-Huang: adding LGTM is restricted to approvers and reviewers in OWNERS files. DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
Co-authored-by: Bisheng Huang <hbisheng@gmail.com>
|
|
||
| + PD | ||
|
|
||
| - Support batching PD region-routing lookups and serving them from PD followers to reduce routing latency and avoid overloading the PD leader at scale or after failovers [#8690](https://github.com/tikv/pd/issues/8690) @[JmPotato](https://github.com/JmPotato) |
There was a problem hiding this comment.
The tidb_enable_batch_query_region environment variable mentioned in line 180 already includes this change.
Considering that only the corresponding user-facing behavior is exposed in the documentation, I think we can delete this line and keep only line 180.
| - Support batching PD region-routing lookups and serving them from PD followers to reduce routing latency and avoid overloading the PD leader at scale or after failovers [#8690](https://github.com/tikv/pd/issues/8690) @[JmPotato](https://github.com/JmPotato) | ||
| - Disable split scatter by default in PD to avoid unexpected scheduling after region splits; you can still enable it by setting `schedule.split-scatter-schedule-limit` to a positive value [#10592](https://github.com/tikv/pd/issues/10592) @[lhy1024](https://github.com/lhy1024) <!-- component: pd --> | ||
| - Optimize unsafe recovery empty-region plan generation to improve performance and reduce timeout risk in large clusters with many regions and gaps [#10638](https://github.com/tikv/pd/issues/10638) @[Connor1996](https://github.com/Connor1996) <!-- component: pd --> | ||
| - Improve the performance and stability of runaway query watch handling, including more reliable watch synchronization across TiDB instances and more efficient background flushing and syncing [#65746](https://github.com/pingcap/tidb/issues/65746) @[JmPotato](https://github.com/JmPotato) <!-- component: pd --> |
There was a problem hiding this comment.
This is actually a TiDB-side change. Although it is listed under the PD component label, in fact it only involves changes on the TiDB side, so it would be more appropriate to include it in the TiDB release notes.
| - Optimize unsafe recovery empty-region plan generation to improve performance and reduce timeout risk in large clusters with many regions and gaps [#10638](https://github.com/tikv/pd/issues/10638) @[Connor1996](https://github.com/Connor1996) <!-- component: pd --> | ||
| - Improve the performance and stability of runaway query watch handling, including more reliable watch synchronization across TiDB instances and more efficient background flushing and syncing [#65746](https://github.com/pingcap/tidb/issues/65746) @[JmPotato](https://github.com/JmPotato) <!-- component: pd --> | ||
| - Support using CPU usage in PD hot Region scheduling and hotspot statistics to improve read load balancing across TiKV stores [#5718](https://github.com/tikv/pd/issues/5718) @[lhy1024](https://github.com/lhy1024) <!-- component: pd --> | ||
| - Add the global system variable `tidb_enable_batch_query_region` to control whether TiDB uses batched Region queries to PD, improving the efficiency of fetching Region information; this variable is disabled by default [#58439](https://github.com/pingcap/tidb/issues/58439) @[JmPotato](https://github.com/JmPotato) <!-- component: pd --> |
There was a problem hiding this comment.
Additionally, this is only a change on the TiDB side, so it would be best to include it in TiDB’s release notes.
| - Optimize `ORDER BY ... LIMIT` and `ORDER BY ... TOPN` queries that use `IndexMerge` by pushing `Limit` or `TopN` down to individual partial paths when possible, reducing unnecessary scans and sorting in some query plans [#68773](https://github.com/pingcap/tidb/issues/68773) @[time-and-fate](https://github.com/time-and-fate) <!-- component: planner --> | ||
| - Improve `ANALYZE` performance on newly bootstrapped clusters by using clustered primary keys for the `mysql.stats_*` system tables [#66751](https://github.com/pingcap/tidb/issues/66751) @[0xPoe](https://github.com/0xPoe) <!-- component: planner --> | ||
| - Support the `max_user_connections` system variable and the `MAX_USER_CONNECTIONS` option in `CREATE USER` and `ALTER USER` to limit the number of concurrent connections for a user [#59203](https://github.com/pingcap/tidb/issues/59203) @[bb7133](https://github.com/bb7133) <!-- component: sql-infra --> | ||
| - Improve compatibility of partial indexes with BR so that BR preserves their `WHERE` predicates when repairing ingest indexes during log restore [#62664](https://github.com/pingcap/tidb/issues/62664) @[Leavrth](https://github.com/Leavrth) <!-- component: sql-infra --> |
There was a problem hiding this comment.
This is a new feature. ToDo: move it to the ## Features section and rewrite it.
| - Support partial ordered index optimization for `ORDER BY` ... `LIMIT` queries to reduce full table scans, controlled by the `tidb_opt_partial_ordered_index_for_topn` system variable [#63280](https://github.com/pingcap/tidb/issues/63280) @[elsa0520](https://github.com/elsa0520) @[winoros](https://github.com/winoros) <!-- component: planner --> | ||
| - Improve join plan selection to avoid choosing inefficient index joins when the estimated probe rows are close to a full scan, improving query performance in some `HASHAGG` + join scenarios [#67610](https://github.com/pingcap/tidb/issues/67610) @[qw4990](https://github.com/qw4990) <!-- component: planner --> | ||
| - Improve query performance for nested `OR` conditions by enabling more efficient `IndexMerge` plans and allowing redundant global filters to be removed so `LIMIT` can be pushed down [#65822](https://github.com/pingcap/tidb/issues/65822) @[time-and-fate](https://github.com/time-and-fate) <!-- component: planner --> | ||
| - Support `LATERAL` derived tables to improve MySQL 8.0 compatibility, including common use cases such as comma joins, `CROSS JOIN LATERAL`, and `INNER JOIN LATERAL` [#40328](https://github.com/pingcap/tidb/issues/40328) @[qw4990](https://github.com/qw4990) <!-- component: planner --> |
There was a problem hiding this comment.
This is a new feature. ToDo: move it to the ## Features section and rewrite it.
|
@hbisheng: adding LGTM is restricted to approvers and reviewers in OWNERS files. DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
|
@bb7133: adding LGTM is restricted to approvers and reviewers in OWNERS files. DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
|
@ekexium: adding LGTM is restricted to approvers and reviewers in OWNERS files. DetailsIn response to this: Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
|
@yibin87: adding LGTM is restricted to approvers and reviewers in OWNERS files. DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
Co-authored-by: Bisheng Huang <hbisheng@gmail.com>
Co-authored-by: Ziqian Qin <eke@fastmail.com>
|
@qiancai: The following test failed, say
Full PR test history. Your PR dashboard. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here. |
|
execution PART LGTM |
|
@ChangRui-Ryan: adding LGTM is restricted to approvers and reviewers in OWNERS files. DetailsIn response to this: Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
| For more information, see [Documentation](link). | ||
|
|
||
| ### SQL | ||
|
|
There was a problem hiding this comment.
| * Support partial indexes to reduce index storage and DML maintenance overhead [#62444](https://github.com/pingcap/tidb/issues/62444) @[YangKeao](https://github.com/YangKeao) @[winoros](https://github.com/winoros) @[wjhuang2016](https://github.com/wjhuang2016) <!--21903--> | |
| Starting from v8.5.7, TiDB supports partial indexes, which index only rows that satisfy a predicate defined in the index `WHERE` clause. You can create a partial index using `CREATE INDEX ... WHERE ...`, `ALTER TABLE ... ADD INDEX ... WHERE ...`, or an index definition in `CREATE TABLE`. | |
| Partial indexes are useful when you frequently query a selective subset of rows or need unique constraints that apply only under specific conditions. Because rows outside the predicate are not written to the index, partial indexes help reduce index storage and can lower index maintenance overhead during `INSERT`, `UPDATE`, and `DELETE` operations. | |
| To use partial indexes effectively, define the predicate to match the filters in your common queries. TiDB selects a partial index only when the query predicates match or imply the partial index predicate. Currently, partial index predicates support basic comparison operators (`=`, `!=`, `<`, `<=`, `>`, `>=`), `IS NULL`, `IS NOT NULL`, and `IN` predicates with constant values. | |
| For more information, see [documentation](https://docs.pingcap.com/tidb/v8.5/sql-statement-create-index/#partial-indexes). |
| Starting from v8.5.7, DM supports foreign key causality for static one-to-one schema/table routing when foreign_key_checks=1 and syncer.worker-count > 1. | ||
|
|
||
| Downstream schemas and foreign key definitions must be pre-created before task start. This support does not include many-to-one or shard-merge routing, dynamic foreign key DDL during replication, safe mode, or PK/UK-changing updates. | ||
|
|
||
| For more information, see [Documentation](link). |
There was a problem hiding this comment.
Current wording says safe mode is unsupported, but release-8.5 only rejects compact/multiple-rows; safe mode has the narrower PK/UK update limitation.
| Starting from v8.5.7, DM supports foreign key causality for static one-to-one schema/table routing when foreign_key_checks=1 and syncer.worker-count > 1. | |
| Downstream schemas and foreign key definitions must be pre-created before task start. This support does not include many-to-one or shard-merge routing, dynamic foreign key DDL during replication, safe mode, or PK/UK-changing updates. | |
| For more information, see [Documentation](link). | |
| Starting from v8.5.7, DM supports foreign key causality for static one-to-one schema/table routing when `foreign_key_checks=1` and `syncer.worker-count > 1`. | |
| Downstream schemas and foreign key definitions must be pre-created before the task starts. This support does not include many-to-one or shard-merge routing, dynamic foreign key DDL during replication, `compact` or `multiple-rows` DML boundary options, or safe-mode updates that modify primary keys or unique keys. When foreign key causality is enabled, hot configuration updates that change `worker-count`, `case-sensitive`, route rules, block-allow-list rules, binlog filter rules, or `foreign_key_checks` are rejected. To change these settings, stop and restart the task with the new configuration. | |
| For more information, see [DM Compatibility Catalog](/dm/dm-compatibility-catalog.md#foreign-key-cascade-operations). |
|
|
||
| * Starting from TiDB v8.5.7, TiDB Lightning no longer supports the web interface. [#67697](https://github.com/pingcap/tidb/issues/67697) @[D3Hunter](https://github.com/D3Hunter) <!--2273--> | ||
|
|
||
| To import data with TiDB Lightning, use the [TiDB Lightning command-line tools]((/tidb-lightning/tidb-lightning-overview.md)): [`tidb-lightning`](/tidb-lightning/tidb-lightning-command-line-full.md#tidb-lightning) for import tasks and [`tidb-lightning-ctl`](/tidb-lightning/tidb-lightning-command-line-full.md#tidb-lightning) for checkpoint and troubleshooting operations. |
There was a problem hiding this comment.
Fix two links: remove the extra (, and point tidb-lightning-ctl to its own anchor.
| To import data with TiDB Lightning, use the [TiDB Lightning command-line tools]((/tidb-lightning/tidb-lightning-overview.md)): [`tidb-lightning`](/tidb-lightning/tidb-lightning-command-line-full.md#tidb-lightning) for import tasks and [`tidb-lightning-ctl`](/tidb-lightning/tidb-lightning-command-line-full.md#tidb-lightning) for checkpoint and troubleshooting operations. | |
| To import data with TiDB Lightning, use the [TiDB Lightning command-line tools](/tidb-lightning/tidb-lightning-overview.md): [`tidb-lightning`](/tidb-lightning/tidb-lightning-command-line-full.md#tidb-lightning) for import tasks and [`tidb-lightning-ctl`](/tidb-lightning/tidb-lightning-command-line-full.md#tidb-lightning-ctl) for checkpoint and troubleshooting operations. |
|
@OliverS929: adding LGTM is restricted to approvers and reviewers in OWNERS files. DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
|
@qw4990: adding LGTM is restricted to approvers and reviewers in OWNERS files. DetailsIn response to this: Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
First-time contributors' checklist
What is changed, added or deleted? (Required)
Add release note files for v8.5.7
Which TiDB version(s) do your changes apply to? (Required)
Tips for choosing the affected version(s):
By default, CHOOSE MASTER ONLY so your changes will be applied to the next TiDB major or minor releases. If your PR involves a product feature behavior change or a compatibility change, CHOOSE THE AFFECTED RELEASE BRANCH(ES) AND MASTER.
For details, see tips for choosing the affected versions.
What is the related PR or file link(s)?
Do your changes match any of the following descriptions?