尧图精选

思源筆記 v3.0.10 版本解讀:資料庫視圖細節打磨與資料索引效能優化

🕒 发布时间:2026/9/9 22:32:08 📁 来源:尧图网络
思源筆記 v3.0.10 版本解讀資料庫視圖細節打磨與資料索引效能優化【免费下载链接】siyuanAn open-source, privacy-first, self-hosted knowledge workspace where humans and AI agents work together 开源、隐私优先、自托管的知识工作空间让人与智能体在此协作项目地址: https://gitcode.com/GitHub_Trending/si/siyuanv3.0.10 是思源筆記SiYuan面向日常編輯高頻場景的一次「細節修補 效能收斂」版本改進重點集中於兩條主線一是資料索引資料庫索引的建置與更新效能涵蓋編輯、建立文件與匯入等多條寫入路徑二是資料庫視圖屬性視圖 Attribute View的使用細節包括新增「行號」欄位類型、過濾選項值搜尋、範本/關聯/彙總計算、解綁與新增資料庫等交互完善。本文以官方變更記錄 v3.0.10_zh_CHT.md 為主體另有簡體中文版本可對照閱讀v3.0.10_zh_CN.md 與英文版 v3.0.10.md並結合本倉庫的前後端實作原始碼逐條解讀每項變更的動機、實現位置與實際影響幫助你在升級前後準確評估行為變化。版本概覽兩條改進主線官方概述將此版本定義為「改進資料索引和資料庫視圖相關細節」從變更清單的構成看其改動可分為四類分類代表變更影響範圍資料庫欄位能力新增「行號」欄位類型、改進資源欄位編輯、改進勾選方塊欄位排序資料庫表格/畫廊/看板等視圖資料庫交互細節過濾選項值支援搜尋、綁定塊支援「新增至資料庫」、改進解綁塊、改進引用錨文本資料庫操作流程與區塊綁定資料索引效能編輯文件、建立文件、匯入.sy.zip與 Markdown 時的索引效能索引佇列與寫入路徑編輯與介面修正右鍵複製選單、Del鍵行為、搜尋關鍵字疊加、拼字檢查範圍、行動端滑動等通用編輯器與 UI「改進功能」共 30 餘項「修復缺陷」共 8 項屬典型的穩定性迭代版本未引入破壞性架構調整升級風險較低。資料庫欄位體系新增「行號」欄位類型本版本最重要的資料庫能力擴充是由 Pull Request #11008 引入的**「行號」lineNumber欄位類型**可讓資料庫自動為每一行產生序號列。欄位類型體系的後端定義思源筆記的資料庫屬性視圖欄位類型在內核層由KeyType常數完整定義位於 kernel/av/av.go// KeyType 描述了屬性視圖屬性欄位的類型。 type KeyType string const ( KeyTypeBlock KeyType block // 主鍵 KeyTypeText KeyType text // 文字 KeyTypeNumber KeyType number // 數字 KeyTypeDate KeyType date // 日期 KeyTypeSelect KeyType select // 單選 KeyTypeMSelect KeyType mSelect // 多選 KeyTypeURL KeyType url // URL KeyTypeEmail KeyType email // Email KeyTypePhone KeyType phone // 電話 KeyTypeMAsset KeyType mAsset // 資源 KeyTypeTemplate KeyType template // 範本 KeyTypeCreated KeyType created // 建立時間 KeyTypeUpdated KeyType updated // 更新時間 KeyTypeCheckbox KeyType checkbox // 勾選方塊 KeyTypeRelation KeyType relation // 關聯 KeyTypeRollup KeyType rollup // 彙總 KeyTypeLineNumber KeyType lineNumber // 行號 )可以從該定義看出兩個資訊點其一v3.0.10 之後資料庫欄位類型達到 17 種「行號」與「主鍵、建立時間、更新時間」一樣屬於由系統維護、而非使用者逐格填寫的自動計算型欄位其二Key結構體中每個欄位類型可攜帶各自專屬的配置如單選的Options、數字的NumberFormat、範本的Template、關聯的Relation、彙總的Rollup後續前端可據此渲染不同的編輯器。前端渲染與特殊處理行號欄位在前端的落點集中在app/src/protyle/render/av/目錄下col.ts新增欄位選單中註冊lineNumber類型並將其顯示名稱指向語言資源window.siyuan.languages.lineNumber且行號欄位被安排在「建立時間」等系統欄位之前插入檔案內註解標明「在建立時間前插入 lineNumber」這說明行號列在表格視圖中有既定的列順序策略。cell.ts定義行號單元格的取值與渲染分支並在多處把lineNumber與created、updated、template、rollup並列處理——這些欄位都不接受使用者直接編輯因此在單元格交互邏輯中會被排除在可編輯清單之外。calc.ts當資料行進行排序、篩選等計算時行號作為基於行位置的派生值被單獨處理避免隨內容變更而錯誤重算。action.ts在行操作如新增、刪除、更新欄位的判斷中將lineNumber與系統時間欄位一併排除防止使用者誤編輯。gallery/item.ts畫廊視圖中同樣透過fieldType lineNumber判斷是否輸出序號資訊。樣式方面app/src/assets/scss/business/_av.scss 為[data-dtypelineNumber]提供了專用呈現規則確保行號列在各視圖下外觀統一。實務要點若要為清單建立流水序號直接在資料庫表格視圖新增一欄並選取「行號」即可該欄位由系統依當前行順序自動生成不佔用內容欄位也不會被手動改寫。資料庫過濾與排序選項搜尋與多項修正過濾選項值支援搜尋此前當單選/多選欄位的可選項很多時在過濾面板中人工捲動尋找目標項效率偏低。v3.0.10 為資料庫過濾面板的選項清單加入了搜尋框其實作位置在 app/src/protyle/render/av/filter.tsconst searchInput options.length 5 ? input classb3-text-field placeholder${window.siyuan.languages.search} contenteditable="false">【免费下载链接】siyuanAn open-source, privacy-first, self-hosted knowledge workspace where humans and AI agents work together 开源、隐私优先、自托管的知识工作空间让人与智能体在此协作项目地址: https://gitcode.com/GitHub_Trending/si/siyuan创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
上一篇/下一篇内容由系统自动关联 返回资讯列表 →