按照条件导出吗,就是清理会慢一些,只能用delete语句
好的呀,感谢解答。
学到啦,谢谢解答呀。
- 单表 ≥ 1 亿行 或 ≥ 100 GB
- 每天 / 每周有批量删历史数据(保留最近 N 天)
- 按时间 / 租户 / 地区查询为主,可做分区裁剪
- 需要冷热分层存储降成本
有些分区处理比较方便
超过1000万可以考虑分区表
延伸思考一下:如果有分区的表基于分区键进行region切割,放弃使用row_id,会怎么样?
业务分析选择分区表类型
我们数据量大于1000万,存储空间大于1T,考虑使用分区表
最佳实践是结合数据增长速率、查询模式、硬件资源以及实际测试结果来决定是否实施分区
TiKV 的空间回收依赖于 MVCC 的 GC 机制,通过 raftstore 层的 GC worker 定期清理历史版本数据。如果 GC 推进慢,通常是因为存在长时间未提交的事务,或者某个 TiKV 节点 Raft 复制延迟导致 safepoint 停滞。
没有统一的标准,关键还是根据业务情况。
如果有数据卸载需求,且查询一般会带上分区键查询,可以考虑使用分区,如果没有这些需求还是不建议分区
TiDB 的 Region 自动分裂与负载均衡已处理海量数据的分布式存储,分区主要用于逻辑数据生命周期管理 或规避单表查询/写入瓶颈 ,不是为“解决太大存不下”——TiDB 单表无硬容量上限(仅受集群总存储制约)。
分区不单纯看数据体量,需结合业务;需按时间批量删档的场景优先分区。
常规标准,具体需要根据自己的业务分析:
行数:千万级(≥1000 万行);
*存储:单表超 50–100GB;
满足其一就建议分区。
无硬性数值阈值,单表超 10 亿行 / 单表原始存储超 500GB,且有按时间、地区等分区字段做冷热裁剪、分区过滤查询时,建议使用分区表。
同意:分区主要收益是管理与裁剪,不是自动变快;分区键与统计不准时计划更容易歪。按业务裁剪与维护成本选分区,而不是只按行数阈值。
没有统一标准 看业务
我们这边单表数量有10亿+,也没有做分表。之前讨论过。研发这边的查询条件不能固定。根据时间或者根据区划区分都不好分区。tiflash做加速。注意下并发