SurrealDB 是一个多模型数据库,单一实例即可处理关系查询、图遍历、文档存储、键值访问、时序和向量相似度搜索,无需额外部署独立的图数据库、搜索引擎或缓存。查询语言 SurrealQL 形似 SQL,但内置图遍历(->、<-)、记录链接、SELECT VALUE 扁平数组、FETCH 预加载关联记录以及 LIVE SELECT 实时流。RELATE 语句在节点间创建带类型的边记录,边存储在独立表中并含 in/out 字段,可携带任意数据并支持双向遍历,用于替代 JOIN 表和外部键。表可定义为 SCHEMAFULL(严格校验)或 SCHEMALESS(接受任意字段),两种模式可在同一数据库共存,通过 DEFINE TABLE 和 DEFINE FIELD 定义结构。DEFINE ACCESS ... TYPE RECORD 配合 SIGNUP/SIGNIN 可内置记录级认证。实时查询需 WebSocket 连接,HTTP 不支持。
使用要点:连接后必须调用 db.use() 设置命名空间和数据库,否则查询会报 no namespace or database selected;记录 ID 是类型化值,需用完整 table:id 形式,SDK 中可用 new RecordId("person","john");启用 .live() 或 LIVE SELECT 时连接 URL 需用 ws:// 或 wss://;RELATE 会自动创建边表,不要预先将其定义为普通表;向 SCHEMAFULL 表写入未定义字段在旧版本会被静默丢弃,3.0+ 则报错,需为每个字段执行 DEFINE FIELD;SELECT VALUE 仅适用于单个非嵌套字段并返回扁平数组,SELECT VALUE name, age 语法无效;对存储记录链接的字段使用 FETCH 可在一次查询内联加载完整记录,避免 N+1 查询,也支持嵌套链接如 FETCH author, author.department。
限制:资料强调训练数据中的 SurrealDB API 可能过时,编写代码前须用 WebFetch 读取实时文档 https://surrealdb.com/docs/llms.txt 核对,不得假设某 API 存在。其余关于部署方式、收费与价格、支持平台、性能数据等事实暂未提供。