TiDB v7.5 分区索引、HTAP、集群运维知识点疑问

【TiDB 使用环境】测试环境(原理学习验证场景)
【TiDB 版本】v7.5.x
【部署方式】机器部署
【操作系统/CPU 架构/芯片详情】Linux x86_64
【机器部署详情】通用测试集群配置
【集群数据量】测试样本数据
【集群节点数】PD 3节点、TiKV 3节点、TiDB 2节点、TiFlash 2节点

【问题复现路径】
学习平凯星辰 PCTA认证相关知识,基于TiDB v7.5文档梳理技术细节,多个易混淆机制缺少直观对比结论,希望确认底层原理边界。

【遇到的问题:问题现象及影响】
存在理解疑问的知识点清单:

  1. 分区表 Local Index / Global Index
    全局索引底层Key编码差异;表达式前缀全局索引统计信息自动收集限制;TRUNCATE PARTITION操作对全局索引的影响;分区表不声明GLOBAL关键字时索引默认类型。
  2. 资源管控参数协同
    resource-control.enabled 与 tidb_enable_resource_control 同时配置不同值时集群行为差异。
  3. TiFlash内存落盘机制
    查询级、算子级两层落盘阈值优先级;存在支持落盘算子场景下依然出现内存超限的诱因。
  4. TiUP运维规范
    集群不停机滚动升级执行边界;集群标准启动顺序;TiFlash在线缩容前置条件。
  5. 迁移与备份工具场景区分
    TiDB Lightning Logical/Physical导入模式适用限制;BR备份恢复特性;Dumpling导出约束;sync-diff-inspector数据校验限制;DM适配场景边界。
  6. TiCDC、Raft高可用架构
    TiCDC同步任务约束、表索引要求;Raft副本模式下机柜、多数据中心故障容忍逻辑;两地三中心架构优势。

【资源配置】学习测试集群,暂无生产Dashboard截图
【复制黏贴 ERROR 报错的日志】无业务报错,属于理论知识点探讨
【其他附件:截图/日志/监控】无

  • TiDB v7.5 内存悲观锁出现 Leader 宕机场景,锁丢失的影响范围,内存悲观锁持久化相关边界;
  • Placement Rules in SQL 使用流程,标签 Label 配置是否为强制前置步骤;
  • Online DDL job 持久化位置,owner 角色 worker 调度机制;

TRUNCATE PARTITION 操作会清空指定分区的数据。对于带有全局索引的表,这个操作会变得复杂且代价更高:

TRUNCATE PARTITION 等 DDL 操作会触发全局索引的更新。操作需要等待全局索引更新完成才能返回结果,这会增加执行时间。而在没有全局索引的情况下,这些操作通常可以立即完成。

在 TRUNCATE PARTITION 的内部处理过程中(例如在 StateDeleteReorganization 阶段),需要清理被截断分区中已被用户事务覆盖的全局索引条目,以保证数据一致性

TiDB 的自动统计信息收集主要针对普通表和 Local Index。Global Index 的统计信息目前不支持自动收集 ,在涉及全局索引的复杂查询时,可能需要手动收集统计信息以保证执行计划的准确性。

1、集群标准启停顺序
启动顺序:PD → TiKV → TiDB → TiFlash → 监控 (Prometheus/Grafana)
原因:TiKV 注册心跳依赖 PD;TiDB 获取拓扑依赖 PD;TiFlash 同步副本规则依赖 PD。
停止顺序:监控 → TiFlash → TiDB → TiKV → PD
PD 最后关闭,防止 Raft 快照、元数据文件异常损坏。
2、不停机滚动升级执行边界
版本跨度:滚动升级仅支持同大版本内小版本迭代(7.5.0 → 7.5.8);7.x 滚动升级至 8.x 属于跨大版本,官方不推荐滚动,建议分批停机升级;
升级固定顺序:PD → TiKV → TiDB → TiFlash,不可调换;
升级窗口约束:升级期间禁止 DDL、大批量写入、BR 备份、PITR 任务运行;单节点升级完成,等待实例 Up、监控指标正常再处理下一台;
降级限制:仅同版本补丁包可回滚,跨大版本无法安全回滚。
3、TiFlash 安全在线缩容前置条件
查询 information_schema.tikv_store_status,待删除 TiFlash 状态必须为 Up;
等待 PD 完成该节点上所有 TiFlash Region 副本迁移、该 Store 的副本数、Leader 数归零;
正常执行 tiup cluster scale-in,等待状态变为 Offline 后执行 prune 清理部署文件;
–force 只用于服务器彻底宕机销毁场景,强制缩容后必须手动 ALTER STORE ID TOMBSTONE 清理 PD 元数据,否则 PD 持续调度副本引发集群异常。

CREATE TABLE t(…) PARTITION BY RANGE(id) (PARTITION p1,…)
INDEX idx_a(a); – Local Index
INDEX GLOBAL idx_b(b); – Global Index
分区表不声明 GLOBAL 关键字时索引默认类型

  1. 分区索引:v7.5默认是Local Index(不写GLOBAL),Global Index的Key编码包含分区ID,TRUNCATE PARTITION会重建全局索引。表达式前缀全局索引暂不支持统计信息自动收集,建议手动ANALYZE。
  2. 资源管控resource-control.enabled控制开关,tidb_enable_resource_control是session级,两者都开才生效。建议统一设为ON。

未写 GLOBAL 的分区索引默认 local。TiFlash 落盘两层阈值同时约束。滚动升级按 TiUP 文档组件顺序;TiFlash 缩容需先确保无依赖查询并副本健康。CDC 要求表有有效唯一键;多机房用 label 做副本放置,两地三中心换的是可用性与延迟权衡。