开启 KV 分离后,业务 SQL 需要修改吗?
不需要。KV 分离对 SQL 层完全透明,所有 DML 写法保持不变。
开启后立刻就能看到效果吗?
对新写入的数据立即生效;对已存在的数据,需要等到下一轮 Compaction 才会迁移到 Blob 文件。一般大表建议在低峰期开启后,观察24~48小时。
min_blob_size 应该设多大?
经验值1KB ~ 4KB。设得太小(如几十字节)会让大量小 Value 也走分离路径,反而增加读延迟;设得太大则失去分离意义。建议先用 1024 试运行,再根据监控调整。
开启 KV 分离后磁盘占用反而上涨了,是问题吗?
通常不是。原因是被覆盖/删除的旧 Blob 数据需要等 GC 才会被回收。请确认 tdstore_user_cf_enable_blob_garbage_collection = ON。如长期上涨,请联系 DBA 调整 GC 参数。
点查(主键查询)会变慢吗?
理论上每次读大 Value 多一次 Blob 文件 I/O。如果业务对点查延迟敏感,建议开启 Blob Cache(tdstore_enable_blob_cache = ON,需重启),让热点 Blob 留驻内存。
能不能只对某张大表开启?
当前版本不支持表级开关。变通方案:把 min_blob_size 设得高于其它表的 Value 上限(例如8KB),让小表完全不被影响。
开启后影响备份恢复吗?
不影响。Blob 文件作为存储引擎数据文件的一部分,被完整地纳入备份/恢复/Region 迁移流程。