Files

1.3 KiB
Raw Permalink Blame History

擴展與資料庫評估

搜尋基準

FTS5 索引由 posts_fts 與 SQLite trigger 維護。可在部署前後以相同關鍵字比較查詢計畫與平均時間:

./scripts/benchmark-search.sh "關鍵字" 100

輸出中的 queryPlan 應包含 FTS 虛擬表掃描,而不是 posts 的全表 LIKE 掃描。請記錄貼文數量、硬體、SQLite 版本與平均查詢時間,作為升級決策依據。

何時由 SQLite 遷移到 PostgreSQL

SQLite 仍適合單一主機、單一磁碟與低至中等寫入量。當出現以下任一情況時,先在 staging 驗證 PostgreSQL

  • 需要跨多台主機同時執行 Web/Worker,或需要跨區高可用。
  • 寫入鎖定持續造成同步佇列延遲,或 WAL 檔案/備份窗口已難以控制。
  • FTS、稽核或貼文資料量使查詢基準無法滿足服務目標。

遷移步驟:停止寫入、使用 v0.7 以後的 JSON 匯出建立內容快照、以 migration 建立 PostgreSQL schema、匯入 users/sources/posts/互動與同步工作、在 staging 驗證計數與抽樣內容、切換唯讀短暫維護窗口、最後更新 DATABASE_URL 及備份/監控設定。SQLite 與 PostgreSQL 的雙寫不列為預設策略;除非有完整一致性驗證,避免長期雙寫。