系列前 17 篇把知识库从搭建到维护讲了个七七八八。上周有朋友问了一个很实际的问题:vault 超过 2 万个文件了,Obsidian 不卡吗?
卡,当然卡过。
2.5 万个文件,12 万张图片塞在一个仓库里,想不卡很难。
但这不等于要忍受。花了一个多月反复调,现在日常操作基本感觉不到延迟。这篇说几个我觉得最管用的做法。
图片搬出去是最大的一步。
Obsidian 的 assets 放在 vault 里面是最拖速度的。12 万张图片,24GB,全在 vault 目录下。每次加载文件列表、搜索、甚至打开文件夹,Obsidian 都要扫描这些图片。
改动很简单:把图片目录移到 vault 外面。
原来是这样: Obsidian Vault/ ├── assets/ ← 12 万张图片,24GB ├── 笔记/ └── 公众号文章/ 改成这样: /data/Obsidian-assets/ ← 图片独立出去 Obsidian Vault/ ├── assets/ ← 符号链接指向外部目录 ├── 笔记/ └── 公众号文章/
关键一步:在 Obsidian 设置里把「附件文件夹」设为 assets/。新图片自动存到外部目录,vault 里的 assets/ 只是一个符号链接。
就这一项改动,启动快了至少一倍。文件列表加载从 5 秒降到 1 秒以内。
关掉不用的核心插件。
Obsidian 自带一堆插件,但不是每个都要开。检查「设置 → 核心插件」,关掉从不用的:
日记(不用就关)、幻灯片、发布服务、工作区、录音机、白板。
关了 6 个,内存占用从 800MB 降到 500MB 左右。操作响应也跟着快了。
第三方插件做减法。
装过 30 多个插件,真正日常用的不超过 10 个。其余都是试过就扔在那的。
逐个看了性能影响。几个比较吃资源的:Kanban(用 Dataview 替代)、Excalidraw(用时手动开)、Obsidian Git(改成一小时一次)。折中方案:保留 15 个插件,大部分关闭,只在需要时手动启用。
搜索范围要限制。
Obsidian 默认搜全库。2.5 万文件全搜一遍,结果出来要等 3-5 秒。在「设置 → 搜索 → 排除文件」里加三条规则:.trash/、.stversions/、_sync_*——这几个目录加起来几千个文件,日常搜索用不上。加了排除后,搜索在 1 秒内出结果。
另一个小技巧:用 path: 限定搜索范围。找笔记只搜「笔记/」,找技术文档只搜「资料库/」。path:笔记/ 关键词 比全局搜快得多。
CSS 和主题精简一下。
用了 Minimal 主题,本身优化不错。但插件装多了,CSS 加载会变慢。做了三件小事:关掉 Theme Styles 里不用的样式、自定义 CSS 片段从 12 个合并成 3 个、图片相关 CSS 加 max-width: 100%。编辑器打字延迟从偶尔能感觉到变成了完全消失。
最后接受一个事实。
2.5 万文件的 vault,不可能跟新建的空白 vault 一样快。目标是「日常操作不觉得卡」,不是「秒开秒响应」。
现在日常用的场景:搜索文章(1 秒内)、打开笔记(0.5 秒)、切换文件夹(即时)、Dataview 查询(2-3 秒)。够用了。
如果 vault 再翻倍,可能需要分库、归档旧文章、或者换更轻量的前端。那是以后的事。
前几篇讲了知识库的搭建、维护、阅读、输出。这篇算是给大仓库用户的一个补充。系列暂时到这里,以后有新的实践心得再续。