Skip to content

[Optimization] 优化 Supabase 同步数据结构,减少特殊词库(已掌握、错词、收藏)的数据冗余 #260

Description

@didyhu

背景描述
目前 TypeWords 支持通过 Supabase 进行云端同步。在分析 typewords_data 表的数据时发现,wordKnown (已掌握), wordWrong (错词), wordCollect (收藏) 这三个词库在同步时存储了完整的 Word 对象。

随着用户学习量和错词量的增加,dict 字段的体积会迅速膨胀(实测在有一定学习积累后,单行 JSON 体积可达 2MB-3MB 以上),这会导致以下问题:

  1. 同步性能下降:大数据量的上传和下载会导致明显的卡顿和同步超时。
  2. 数据库超限风险:Supabase 免费版有 500MB 的存储限制,冗余的详情数据(如例句、词源等)加速了空间消耗。

分析建议
packages/core/src/utils/index.tsshakeCommonDict 函数中,目前已对普通词典进行了 words 清空处理,但排除了这三个词库。建议对这三个词库也进行分级瘦身:

  • wordKnown: 仅需保留单词 ID 或 word 文本,用于过滤。
  • wordWrong / wordCollect: 仅保留核心的 trans (释义) 和 phonetic (音标),剔除 etymology (词源)、relWords (同根词)、synos (近义词) 等重度字段。

预期效果
优化后预计可减少该字段 50% - 80% 的体积,大幅提升同步效率。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions