用途:帮助编写生产级 SurrealDB 查询与操作,使用 SurrealQL 完成 schema 设计、CRUD、图关系建模、认证、索引、函数与事务等任务,适用于文档、图、关系型混合的多模型应用。
主要能力:编写 SELECT、CREATE、UPDATE、DELETE、UPSERT 等语句;设计 SCHEMAFULL/SCHEMALESS 表与字段定义;用记录链接、RELATE 图边与嵌套文档建模关系;实现认证与权限(DEFINE ACCESS、表级 PERMISSIONS、RBAC);创建索引与全文检索;编写 DEFINE FUNCTION 自定义函数;使用 LIVE 查询构建实时应用;用事务保证一致性;从 SQL/NoSQL 迁移并调试优化查询。
使用方式:先理解数据模型与访问模式,再选择 schema 策略(结构明确用 SCHEMAFULL,快速原型用 SCHEMALESS);按需设计关系模型(记录链接、图边或内嵌文档);最后定义索引、权限与事务。常用模式包括带过滤与分页的查询、UPSERT、图遍历、聚合分析、子查询与 LET 变量。示例:UPSERT user:email@example.com SET email = 'email@example.com', visits += 1; 和 RELATE person:alice->follows->person:bob SET since = time::now();
限制与注意:避免表扫描,优先使用具体记录 ID;仅选择所需字段;为常用查询建立索引;批量操作代替多次单条插入;使用事务处理相关操作。需注意字段存在性检查、避免 N+1 查询、使用记录链接而非字符串 ID、限制图遍历范围。SurrealDB 2.x 支持 GraphQL 等新特性,1.x 使用 scope 而非 access,生成前应确认目标版本。具体安装命令与收费信息暂未提供。