TiDBer0246
(Ti D Ber 4kqcv Kmf)
1
【TiDB 使用环境】测试环境(原理学习验证场景)
【部署方式】机器部署
【操作系统/CPU 架构/芯片详情】x86_64 Linux
【机器部署详情】标准测试集群规格
【集群数据量】测试数据
【集群节点数】PD×3、TiKV×3、TiDB×2、TiFlash×2
【问题复现路径】学习TiDB PCTA认证相关课程与官方文档,梳理知识点时,多个模块存在选项辨析疑问,文档描述缺少直接对比结论。
【遇到的问题:问题现象及影响】
针对以下模块底层机制存在理解模糊点,希望社区大佬帮忙梳理原理边界:
- 分区表 Local Index / Global Index
全局索引底层Key编码差异;表达式前缀全局索引统计信息自动收集限制;TRUNCATE PARTITION操作对全局索引的影响;分区表不声明GLOBAL关键字时索引默认类型。
- 资源管控参数协同
resource-control.enabled 与 tidb_enable_resource_control 同时配置不同值时集群行为差异。
- TiFlash内存落盘机制
查询级、算子级两层落盘阈值优先级;存在支持落盘算子场景下依然出现内存超限的诱因。
- TiUP运维规范
集群不停机滚动升级执行边界;集群标准启动顺序;TiFlash在线缩容前置条件。
- 迁移与备份工具场景区分
TiDB Lightning Logical/Physical导入模式适用限制;BR备份恢复特性;Dumpling导出约束;sync-diff-inspector数据校验限制;DM适配场景边界。
- TiCDC、Raft高可用架构
TiCDC同步任务约束、表索引要求;Raft副本模式下机柜、多数据中心故障容忍逻辑;两地三中心架构优势。
【资源配置】测试学习集群,无生产Dashboard截图
【复制黏贴 ERROR 报错的日志】无报错,属于原理知识探讨
【其他附件:截图/日志/监控】无
缩容 TiFlash 前,必须确保没有正在运行的 TiFlash 副本 ,或者系统能够自动将 TiFlash 副本迁移/删除。如果强行缩容带有活跃副本的 TiFlash 节点,可能会导致 Raft 组异常或查询报错
独善其身
(Ti D Ber Bi Rqfz5 K)
5
1、索引默认规则
分区表不写 GLOBAL,所有索引默认是 Local Index(分区本地索引)
- Local Index:索引和数据分区一一绑定,每个分区独立维护一份索引,索引键自带分区 key 前缀;
- Global Index:必须显式声明
CREATE INDEX idx_name ON t(col) GLOBAL,全局一份索引,横跨全部分区。
2、Local Index & Global Index Key 编码结构差异
Local Index 编码
plaintext
IndexKey = [分区Range前缀] + 索引列值 + 主键(rowid)
- 数据、索引 Region 完全同分区绑定;分区裁剪时索引自动跟随分区裁剪,性能最优;
- TRUNCATE / DROP PARTITION:直接删除该分区所有索引数据,元数据同步清理,无残留、无后台 GC 压力。
kang
6
关于分区全局索引的Key编码差异,全局索引默认使用分区键+主键构造独立Key,而Local索引则包含分区ID。建议通过SHOW INDEXES查看具体编码结构。TRUNCATE PARTITION会直接删除对应索引段,全局索引需重建。不声明GLOBAL默认是Local索引。
daodao0101
(Ti D Ber C1 Pxg Fwc)
9
缩容 TiFlash 前,必须确保没有正在运行的 TiFlash 副本 ,或者系统能够自动将 TiFlash 副本迁移/删除。如果强行缩容带有活跃副本的 TiFlash 节点,可能会导致 Raft 组异常或查询报错