LSM读写放大问题

  • 定期清理磁盘空间:对高频删除 / 更新的表,定期执行tikv-ctl space clean --db /data/tikv清理墓碑数据和过期 SSTable,降低空间放大;
  • 定期检查 Compaction 状态:通过tikv-ctl compaction info查看 Compaction 进度,若出现堆积,及时调大后台线程数或降低写入压力;
  • 定期做数据归档:对冷数据(如超过 3 个月的日志、流水),通过TiDB Lightning归档到离线存储(如 HDFS、S3),删除 TiDB 中的冷数据,减少 TiKV 的磁盘占用和 Compaction 压力;
  • 避免在业务高峰期执行大操作:如批量导入、全表更新、索引创建,这些操作会生成大量小 SSTable,触发 Compaction 风暴,建议在低峰期执行,并通过SET GLOBAL tidb_ddl_reorg_batch_size = 1000调小 DDL 批量大小,降低对集群的影响。

感谢分享~

实际使用过程中,可以参考这个方法:
https://tidb.net/blog/6fd1515e

此话题已在最后回复的 7 天后被自动关闭。不再允许新回复。