暂无图片
暂无图片
2
暂无图片
暂无图片
暂无图片

PostgreSQL拓展 pg_graphql 1.0发布,可使用 GraphQL 执行数据库查询

原创 通讯员 2022-12-23
1245

新加坡的 Supabase 于 12 月 16 日(当地时间)宣布全面推出 pg_graphql 1.0,这是其 PostgreSQL 扩展 pg_graphql 的最新版本,它支持使用 GraphQL 进行数据库查询。

 pg_graphql 正在开发中,以在具有 1GB 内存的服务器上运行的 Supabase 免费层中尽可能节省内存。

 在开发初期,我们会有一个用C编写的解析器,用于将GraphQL转换为SQL,利用PostgREST的RPC能力调用HTTP上唯一的SQL函数graphql.resolve(...) 通过发布的方式

 数据是通过标准的非特权 SQL 函数访问的,因此 Postgres 角色权限和行级安全 (RLS) 策略的工作方式与它们在 Postgres 中的工作方式完全相同。安全模型定义一次,随处应用:SQL、REST、Realtime、GraphQL。

 此外,由于没有单独的进程,因此没有往返时间,并且数据库模式检查始终是同步的,无需缓存。

 pg_graphql 的性能随数据库的大小而变化,如果用户需要提高性能,升级数据库实例也将增加 GraphQL 吞吐量,而无需管理外部进程。

 请注意,原子性、一致性、隔离性和持久性是通过 GraphQL API 保证的,因此如果多突变 GraphQL 请求的一部分失败,则回滚整个请求以保持数据库处于一致状态。

 pg_graphql 从 0.5.0 版本开始被重写为纯 Rust 项目,将代码库重构为更易于维护的状态,加快了开发速度,并带来了显着的性能改进。

 从这个版本 1.0 开始,引入 pg_graphql 的开销在运行 Supabase 免费层的硬件上每个请求不到 300 微秒,并且从 SQL 运行时每个连接每秒最多 1060 个查询。对于整个 Auth+HTTP 堆栈,免费层每秒最多可处理 645 个请求,较大的实例允许堆栈每秒处理超过 10,000 个请求。

 尽管``pg_graphql 1.0''在稳定性方面是一个重要的里程碑,但在功能上仍有很大的扩展空间,未来路线图中需要添加的功能有:

  • 扩展的过滤选项,例如字符串类型的 startsWith 和可嵌套的和/或块
  • 用户自定义函数支持
  • 查看支持

被提及。从长远来看,我们还在考虑实施更雄心勃勃的功能,例如用于迁移的 API、通过 superbases/wrappers 与第三方服务集成,以及可扩展的订阅解决方案。


文章来源:https://codezine.jp/article/detail/17068

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论