CodeGraph 深度解析:codegraph.db 資料庫結構完整拆解(Nodes、Edges、索引與觸發器)
這篇延續上一個 CodeGraph 的深度解析數據庫

在上一篇文章CodeGraph 安裝與使用教學:整合 Claude Code、Cursor、Codex 的程式碼圖譜工具中資料如下:
(py3.10) D:\Git\mitagent>codegraph status
CodeGraph Status
Project: D:\Git\mitagent
Index Statistics:
Files: 25
Nodes: 423
Edges: 982
DB Size: 1.26 MB
Backend: node:sqlite - built-in (full WAL)
Journal: wal
其中,Nodes(423)代表程式碼裡的「實體」
每個 node 是一個可識別的程式碼符號:
| Kind | 數量 | 意思 |
|---|---|---|
function |
127 | 獨立函式(def foo() / function bar()) |
import |
81 | import 語句本身(被視為一個節點) |
method |
58 | 類別裡的方法(class.method()) |
constant |
57 | 常數定義(const X = ... / UPPER_CASE) |
variable |
34 | 模組層級的變數 |
file |
25 | 每個原始碼檔案本身 |
class |
23 | 類別定義 |
interface |
9 | TypeScript interface |
route |
9 | HTTP 路由端點(自動偵測到了!) |
Edges(982條)= 節點之間的「關係」
邊代表符號之間的連結,例如:
- A 呼叫 B(call edge)
- A import 了 B(import edge)
- A 繼承自 B(extends edge)
- 檔案 A 包含函式 B(contains edge)
使用 codegraph init 後生成 codegraph.db,在 D:\Git\mitagent\.codegraph\ 目錄,下讀取 sqlite db 如下

結構解釋
這個 codegraph.db 裡面分成四類:
資料表(13個)— 核心數據
| 表名 | 存什麼 |
|---|---|
nodes |
所有程式碼符號(函式、類別、變數等),就是那 423 個 node |
edges |
符號之間的關係(呼叫、import、繼承等),就是那 982 條 edge |
files |
索引的 25 個原始碼檔案(路徑、語言、hash) |
nodes_fts |
虛擬表,FTS5 全文搜尋引擎,讓 AI 可以模糊查符號名稱 |
nodes_fts_* |
FTS5 的內部輔助表(config/data/docsize/idx),不用管 |
unresolved_refs |
解析失敗的參照(例如 import 了找不到的模組) |
project_metadata |
專案設定(版本、最後更新時間) |
schema_versions |
DB schema 版本管理 |
sqlite_sequence / sqlite_statl |
SQLite 內建系統表 |
索引(18個)— 加速查詢
都是幫核心表建的查詢加速索引,例如:
idx_nodes_kind— 快速找所有 function/class/methodidx_nodes_lower_name— 大小寫不敏感搜尋符號名idx_edges_source_kind/idx_edges_target_kind— 快速走訪關係圖
觸發器(3個)— 自動同步 FTS
| Trigger | 時機 |
|---|---|
nodes_ad |
刪除 node 時,自動更新全文搜尋索引 |
nodes_ai |
插入 node 時,自動更新全文搜尋索引 |
nodes_au |
更新 node 時,自動更新全文搜尋索引 |