背景描述
目前 TypeWords 支持通过 Supabase 进行云端同步。在分析 typewords_data 表的数据时发现,wordKnown (已掌握), wordWrong (错词), wordCollect (收藏) 这三个词库在同步时存储了完整的 Word 对象。
随着用户学习量和错词量的增加,dict 字段的体积会迅速膨胀(实测在有一定学习积累后,单行 JSON 体积可达 2MB-3MB 以上),这会导致以下问题:
- 同步性能下降:大数据量的上传和下载会导致明显的卡顿和同步超时。
- 数据库超限风险:Supabase 免费版有 500MB 的存储限制,冗余的详情数据(如例句、词源等)加速了空间消耗。
分析建议
在 packages/core/src/utils/index.ts 的 shakeCommonDict 函数中,目前已对普通词典进行了 words 清空处理,但排除了这三个词库。建议对这三个词库也进行分级瘦身:
- wordKnown: 仅需保留单词 ID 或 word 文本,用于过滤。
- wordWrong / wordCollect: 仅保留核心的
trans (释义) 和 phonetic (音标),剔除 etymology (词源)、relWords (同根词)、synos (近义词) 等重度字段。
预期效果
优化后预计可减少该字段 50% - 80% 的体积,大幅提升同步效率。
背景描述
目前 TypeWords 支持通过 Supabase 进行云端同步。在分析
typewords_data表的数据时发现,wordKnown(已掌握),wordWrong(错词),wordCollect(收藏) 这三个词库在同步时存储了完整的Word对象。随着用户学习量和错词量的增加,
dict字段的体积会迅速膨胀(实测在有一定学习积累后,单行 JSON 体积可达 2MB-3MB 以上),这会导致以下问题:分析建议
在
packages/core/src/utils/index.ts的shakeCommonDict函数中,目前已对普通词典进行了 words 清空处理,但排除了这三个词库。建议对这三个词库也进行分级瘦身:trans(释义) 和phonetic(音标),剔除etymology(词源)、relWords(同根词)、synos(近义词) 等重度字段。预期效果
优化后预计可减少该字段 50% - 80% 的体积,大幅提升同步效率。