SQLite + zstd:定时任务日志压缩优化实践
针对定时任务日志系统的性能与存储压力问题,我们重构了原有基于MySQL的Webcron系统。原系统因日志查询与主业务共用数据库,导致页面加载严重超时;同时高频任务产生的海量日志数据急剧膨胀,占用大量磁盘空间。为此,我们采用SQLite替代MySQL作为独立的日志存储引擎,以消除对主业务的影响。核心优化在于应用zstd压缩算法,针对大于150字节的日志内容进行压缩,相比明文存储和gzip,实现了更优的压缩比与性能平衡。我们设计了按月分库的存储策略,将每月日志存入独立的SQLite文件,既简化了数据清理,也保证了查询性能的稳定。最终方案使用Go语言结合GORM与zstd库实现,达到每10万条日志仅占约10MB的压缩效果,并在数百万条日志中实现了毫秒级查询。此实践证明,对于中小型系统,SQLite配合压缩技术是一种轻量、高效且易于维护的日志管理方案。未来可探索DuckDB及动态字典等方向进一步优化。