Skip to main content
xx

June 07, 2025

小书匠的文章删除后,为什么空间占用没有变小

原因及答案

小书匠是个本地优先,去中心化,支持自定义同步的笔记知识管理系统,对于数据添加,修改都有一套不同的逻辑,特别是对文章的删除都比较谨慎,所以操作步骤比较麻烦些.

小书匠的数据存储与 git 版本管理软件类似,提供了版本管理,一般删除只是逻辑删除,想要真正删除,需要在回站里清空数据后,再到数据管理里,压缩下数据,才能真正物理删除.

删除文章后压缩数据库

删除文章后压缩数据库

小书匠存储机制

小书匠为了实现版本管理和自定义同步功能,采用了与 Git 类似的存储机制.同时为了减轻普通用户操作 Git 难度,针对文章管理方面,做了一些调整,提高用户的使用体验.

了解一下小书匠的存储机制,有利于想要更深入使用小书匠的功能,比如自定义数据同步.

Git 是一个分布式版本控制系统,用于跟踪和管理文件的变化。它最初由 Linus Torvalds 在 2005 年为 Linux 内核开发而设计。Git 的主要功能包括:

  1. 版本控制:记录文件的历史变更,可以回退到任意历史版本。
  2. 协作开发:多人可以同时在同一个项目上工作,并通过合并(merge)来整合更改。
  3. 分支管理:支持创建分支(branch),便于并行开发和实验性功能开发。
  4. 分布式:每个开发者都有完整的仓库副本,不依赖中央服务器。

Git 的核心是一个内容寻址文件系统,所有文件的历史版本都被存储在 .git/objects 目录中(称为“对象数据库”)。即使你删除了工作目录中的文件,Git 仍然保留这些文件的历史版本,以便你可以回退到之前的提交。

文章"删除"的不同阶段

删除文章

用户通过文章列表删除小书匠文章时,默认是放到回收站,这时候,文章并没有真正删除,只是添加了一个标识,表明该文章放到了回收站里.其他文章对该文章的引用,依然有效.如果您配置了自定义数据同步功能,该被删除的文章正文内容还是会同步到其他服务器上.

这时候文章的删除,对普通用户来说,只是逻辑删除,用户还可以到回收站里,取消删除,来达到还原被删除的文章

清空回收站

在回收站,把文章清空后,对普通用户来说,这是物理删除,但对小书匠应用来说,还是逻辑删除,普通用户在这台电脑上已经没办法恢复清空的文章了,但小书匠为了实现版本管理,数据同步功能,在真正的底层存储里,还会保留这些数据,直到用户执行数据库压缩功能.

压缩数据库

当执行数据库压缩时,小书匠会把用户物理删除的数据,在存储层面进行删除,类似于 Git 命令里的 git gc, 清理未被引用的对象,及不需要的历史记录.

相关文章

  1. 小书匠卡在启动页面问题的解决
  2. 如何修改小书匠客户端数据库存储位置
Tagged with 文档 | 小书匠 | 数据库 | 回收站
Design by xsj 京ICP备13031371号