如果把block-size从64KiB改成16KiB, 之前导入的数据需要重新再迁移吗?

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

  • 【TiDB 版本】:v3.0.6
  • 【问题描述】: 如果把block-size从64KiB改成16KiB, 之前导入的数据需要重新再迁移吗?还是说不需要, 在后续的新增数据及更新数据时都不需要再做什么额外的动作,也不会有什么新的影响?

不需要。

建议多了解下 rocksdb 相关知识再调整。

谢谢回复! 还有一个问题,rocksdb默认的block-size是4K,为什么tidb要把64K作为默认的block-size? block-size越大,性能肯定会越低,你们选择64K作为默认的block-size,是处于哪方面的考虑?麻烦能回答一下吗?

改成 4k 压缩效果可能会更差,另外 compact 时可能额外占用空间。

请问, 为什么改成4k后压缩效果会差而且做compaction时会额外占用空间呢?

以 block 为单位压缩,越大碰到的重复数据概率越大,压缩效果越好。另外小的 block 压缩效果不明显,在 compact 时的空间占用会更多。

好的 明白了。 多谢答复!

:+1: :+1: