PlanetScale vs. Neon - MySQL 和 Postgres 间的第二仗

news2024/11/28 8:41:14

本文为「数据库全方位对比系列」第三篇,该系列的前两部作品为:

  • 全方位对比 Postgres 和 MySQL
  • 全方位对比 Postgres 和 MongoDB

根据 2023 年 Stack Overflow 调研,Postgres 已经取代 MySQL 成为最受欢迎和渴望的数据库了。

file

看起来 MySQL 和 Postgres 的爱恨交织还将继续。从原生的 MySQL vs. Postgres,到分布式的 TiDB vs. CockroachDB,再到云原生的 AWS Aurora vs. GCP AlloyDB,现在进入了下一章节:面向开发者的 serverless 数据库 PlanetScale vs. Neon。

file file

Bytebase 一直与 MySQL / Postgres 及其生态合作密切。业界最大的 MySQL & Postgres 托管服务之一 Google Cloud SQL 也是 Bytebase 创始团队的杰作之一。

我们就以下几个维度对 PlanetScale 和 Neon 进行了对比:

  • 架构 Architecture
  • 兼容性 Compatibility
  • 开发者工作流 Developer Workflow
  • 可靠性 Reliability
  • 伸缩性 Scalability
  • 可运维性 Operability
  • 集成 Integration
  • 合规 Compliance
  • 开源 Open Source
  • 定价 Pricing
  • 融资情况 Funding

架构 Architecture

PlanetScale 是基于 Vitess 的分布式数据库。Vitess 采用 shared-nothing 架构,每个分片 (shard) 包含一个 MySQL 主节点和几个副本。VTGate 代理将应用程序请求转发到相应的分片。

file

Neon 采用 shared-storage 架构,分离了计算和存储,计算部分只是普通的 Postgres 服务器,而存储部分则是一个定制的多租户存储系统,由所有 Postgres 计算节点共享。

file

兼容性 Compatibility

PlanetScale 的 MySQL 兼容性受到了限制。

  • 底层 Vitess 的限制。Vitess 的 shared-nothing 架构本身就有兼容性限制。需要维护会话或跨分片操作的功能很难实现。
  • 产品权衡。比如为了支持在线 DDL,PlanetScale 完全禁止外键,这比 Vitess 对外键的限制更严格。
  • 云服务模式。没有超级权限或 LOAD DATA INFILE 这样可以访问 host 文件系统。

Neon 与原生 Postgres 基本兼容。 Neon 则实现了新的 Page 层,除此之外只是轻微修改了 Postgres 本身的代码。Neon 的兼容性仅受云服务模式的限制,类似于其他云托管数据库服务(没有超级用户或访问 host 文件系统)。

开发者工作流 Developer Workflow

PlanetScale 和 Neon 都是面向开发者的,但它们在介绍开发者工作流时选择了不同的侧重点。 PlanetScale 强调了从分支,迁移 schema,监控到回滚等端到端的体验。

file

Neon 则仅仅突出了一个功能,分支(branching)。他们专为此构建了 Copy on Write(CoW)的 Page 层,使得同时包含 schema 和数据的分支可以被瞬间创建出来,而且几乎没有任何成本。

file

可靠性 Reliability

Shared-nothing 架构天生具有容错性,因为数据被分片和复制了。Vitess 已经是经过许多全球知名企业验证的技术,PlanetScale 这些年来也证明了其可靠性,没有出现过大故障。

file

Shared-storage 架构需要更强的技术来使逻辑上看是单点(SPOF)的存储组件具备故障容错能力。Neon 有文章详细描述其中的技术决策 。

作为一种开创性的数据库架构,Neon 的优势在于它建立在坚实的基础之上。PostgreSQL 本身非常稳定且支持完善的事务。Neon 的 Pageserver 也与 PostgreSQL 基于 WAL 的日志完美契合。此外,Neon 能够选择更现代的系统编程语言 Rust,这对于实现其存储层时来说非常合适。

伸缩性 Scalability

PlanetScale,顾名思义,能做到星球级 (Planet) - 伸缩 (Scale)。其 shared-nothing 架构使得其伸缩性接近线性增长 (scale-out),底层的 Vitess 最初在 YouTube 内部开发,就是用于应对伸缩性的挑战,并且已经在其他大型互联网公司获得了验证:

  • Slack
  • 京东

相比之下,Neon 不像 PlanetScale 那样具备如此高的伸缩性,毕竟,它只是一个单节点的 Postgres 实例。但这个单节点也可以很好地进行纵向伸缩 (scale-up)。Neon 将存储和计算分离开来,因此两个部分可以分别独立进行伸缩。而且在云环境中,存储是无限的,计算资源也非常充足,因此可伸缩性往往仅受网络带宽限制。这种分离式架构还带来了弹性能力,在需要时可以轻松实现 scale-to-zero 的缩减或者从小到大的扩冲。

可运维性 Operability

PlanetScale 提供的是一套完整的托管数据库服务,它的定位是管理使用数据库的每个方面。

file

  • Deploy requests and Branches - 用于数据库变更工作流
  • Insights - 监控
  • Boost - 提升查询性能
  • Revert - 回滚
  • Console - 在浏览器中提供类似 mysql CLI 的使用体验
  • Backup - 灾备

虽然有这么多功能,PlanetScale 仍然能打磨好每一个。例如,Boost 就展示了 PlanetScale 将学术论文转化为优秀产品的实力。

file

Neon 相对较新,提供了基本的功能。

  • 通过分支功能来实现灾备。
  • 可视化的 SQL 编辑器与数据库进行交互。

file

SQL 编辑器很好用:Neon 嵌入了外部的 explain.dalibo.com 来展示查询计划。虽然界面看起来有点奇怪,但确实能解决问题。

集成 Integration

PlanetScale 本身已经是个很全面的数据库平台了,它的文档站还列了一系列集成:

  • 支持主要的语言应用程序框架。
  • 使用 Datadog 监控。
  • 通过 Airbyte, Stitch 和 Hightouch 进行数据传输。

Neon 尚未积累很多标配的数据库集成,但 Neon 独特的功能解锁了新的集成可能:

  • Snaplet 使用 Neon 来瞬间提供生产数据库快照以供测试环境使用。
  • Replit 使用 Neon 的 scale-to-zero 为用户提供低成本的数据库服务。
  • Vercel + Neon 的 branching,可以在几分钟内(而不是几小时)提供部署预览。

合规 Compliance

PlanetScale 拥有 SOC 2 Type 2 和 HIPAA 认证。 Neon 目前已完成 SOC 2 Type 1 。

开源 Open Source

PlanetScale 和 Neon 采用了一致的策略,他们的代码库都采用了相同的自由开源许可证,并只对云服务收费。

file

PlanetScale 基于 forked 的 Vitess 分支,用的是 Apache-2.0 证书。PlanetScale 的团队还曾经打造过 gh-ost,是 MySQL 最好的在线 Schema 迁移 (Online DDL) 工具(可能也是所有开源关系型数据库管理系统中最好的)。他们还开源了 beam,一个展示 PlanetScale 功能的留言板网页应用。

Neon 的整个代码库也是采用了 Apache-2.0 许可证。

定价 Pricing

PlanetScale 根据用量计费 (usage-based),基于读写行数。这在数据库服务中还是不太常见的,当时也引起了争议。一方面,它鼓励用户优化查询;另一方面,糟糕的查询是很难避免的,尤其是 MySQL 查询优化器本身也存在缺陷。为了消除争议,PlanetScale 最近推出了一个新的 Scaler Pro 套餐,提供无限制的行读写操作。

file

Neon 也是用量计费 (usage-based),根据的是 4 个指标:活跃计算时间、数据存储、数据传输和数据写入。这种定价模型更加传统和可预测。Neon 还提供一个定价计算器来估算成本。

file

融资 Funding

两家公司都由行业老兵带领,且资金充裕:PlanetScale 迄今已筹集了 $1.05 亿美元,而 Neon 则获融到了 $1.03 亿(包括近期刚宣布的 B 轮融资 $4600 万)。

PlanetScale 还是 Neon?

file

总体而言,PlanetScale 为每个数据库任务提供了一致的体验。最初,它只是一个面向超大规模用户的兼容 MySQL 的 Vitess 托管服务。自从转向开发者市场以来,PlanetScale 已经转变成一个先进的 serverless 数据库平台,只是恰好是支持了 MySQL 方言。

Neon 面世的晚一些,并且与新的 PlanetScale 有非常相似的价值主张。与 PlanetScale 不同的是,Neon 从第一天起就明确知道自己的目标受众,并有意地去构建迎合他们的技术:

  • 类似 Git 的分支管理,特别是可以立马创建出包括 schema 和数据的分支。
  • 具备自动缩放的 serverless 数据库。
  • 迎合 Postgres 的崛起,提供几乎完美的 Postgres 兼容性。

PlanetScale 和 Neon 之上

现在,在为下个项目选数据库时,首要考虑的已经不再是 Postgres vs. MySQL。相反,是考虑选择关系型数据库管理系统 (RDBMS) 还是其他类型的数据库。尽管 RDBMS 在数据库市场上仍占据主导地位,但讽刺的是,在云时代,这个领域并没有像其他数据库领域一样取得很大进展。用户确实有很多选择,但没有哪个能与 NoSQL 领域的 MongoDB Altas 或 OLAP 里的 Snowflake 媲美。

PlanetScale 和 Neon 彼此相似,而它们也与 MongoDB / Snowflake 相似:

  • 类似 MongoDB,PlanetScale 采用了 shared-nothing 架构、提供完整的数据库平台、面向开发人员,并能够讲述出色的产品故事。
  • 类似 Snowflake,Neon 将新颖的 shared-storage 引入到体系僵化的 OLTP 领域,使用 Postgres 方言,也同样重视开发者体验。

PlanetScale 和 Neon 都有可能成为现代关系型数据库即服务 (Modern RDBMS DBaaS) 中的下一个 MongoDB / Snowflake。我们都已经等了太久了。

不过, 如果你还是喜欢用原生的 MySQL 和 Postgres,并想要用 PlanetScale 的数据库变更工作流或 Neon 的可视化 SQL 编辑器,可以来试用一下 Bytebase。Bytebase 是个支持所有主流数据库的数据库工具,一站式覆盖数据库的变更、查询、安全和治理,提供了更多可定制的变更工作流,以及集成了数据访问控制和脱敏的可视化 SQL 编辑器。

file


💡 你可以访问官网,免费注册云账号,立即体验 Bytebase。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/858271.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

7个最先进的3D模型生成式AI大模型【AIGC】

AI正在不同的行业中出现,我们对 3D 资产生成的前景感到兴奋。 对于游戏开发商和工作室来说,3D 资产通常是开发过程中最棘手的部分之一,容易出现瓶颈。 生产一个模型的成本从 60 美元到 1500 美元不等,需要 2 到 10 周的时间来回制…

【C++】做一个飞机空战小游戏(四)——给游戏添加背景音乐(多线程技巧应用)

[导读]本系列博文内容链接如下: 【C】做一个飞机空战小游戏(一)——使用getch()函数获得键盘码值 【C】做一个飞机空战小游戏(二)——利用getch()函数实现键盘控制单个字符移动【C】做一个飞机空战小游戏(三)——getch()函数控制任意造型飞机图标移动 【C】做一个飞…

【项目实战】Kafka 生产者写入分区的策略

👉博主介绍: 博主从事应用安全和大数据领域,有8年研发经验,5年面试官经验,Java技术专家,WEB架构师,阿里云专家博主,华为云云享专家,51CTO TOP红人 Java知识图谱点击链接&…

苏州OV泛域名RSA加密算法https

RSA加密算法是一种非对称加密算法,它被广泛应用于信息安全领域。与对称加密算法不同,RSA加密算法使用了两个密钥,一个公钥和一个私钥。公钥可以公开,任何人都可以使用它加密信息,但只有私钥的持有者才能解密信息。RSA加…

NGINX负载均衡及LVS-DR负载均衡集群

目录 LVS-DR原理搭建过程nginx 负载均衡 LVS-DR原理 原理: 1. 当用户向负载均衡调度器(Director Server)发起请求,调度器将请求发往至内核空间 2. PREROUTING链首先会接收到用户请求,判断目标IP确定是本机IP&#xff…

8路AD采集FMC子卡【产品资料】

FMC148是一款基于VITA57.4标准的JESD204B接口FMC子卡模块,该模块可以实现8路14-bit、500MSPS/1GSPS/1.25GSPS ADC采集功能。该板卡ADC器件采用ADI公司的AD9680芯片,全功率-3dB模拟输入带宽可达2GHz。该ADC与FPGA的主机接口通过16通道的高速串行GTX收发器进行互联。 …

《Java-SE-第三十三章》之函数式编程

前言 在你立足处深挖下去,就会有泉水涌出!别管蒙昧者们叫嚷:“下边永远是地狱!” 博客主页:KC老衲爱尼姑的博客主页 博主的github,平常所写代码皆在于此 共勉:talk is cheap, show me the code 作者是爪哇岛的新手,水平很有限&…

消息中间件 Asio (C++)

折腾了一上午,看到这个结果的时候泪目了兄弟闷,讲真。我的asio客户端成功收到服务端发来的消息了。虽然这确实是极其智障又简单的入门哈哈 下载独立版本 asio网络通信库新建cmake工程,CMakeLists.txt加载asioasio最简单的服务端和客户端代码…

iview+treeSelect组件,我是如何一步步手动实现全选功能的

如果我掏出下图,阁下除了私信我加入学习群,还能如何应对? 正文开始 前言一、历史问题二、通过监听select事件实现全选不靠谱!!!三、 通过外部事件控制树选择组件四、render函数创建组件4.1 不得不说的h函数…

STM32 低功耗-待机模式

STM32 待机模式 文章目录 STM32 待机模式第1章 低功耗模式简介第2章 待机模式简介2.1 进入待机模式2.1 退出待机模式 第3章 待机模式代码部分总结 第1章 低功耗模式简介 在 STM32 的正常工作中,具有四种工作模式:运行、睡眠、停止和待机模式。 在系统或…

nuxt.js框架使用

1、这种框架只要页面有一个地方错,都会出现404或者吓人的报错界面。 如表单的prop属性,在data函数return对象里面该字段找不到或者不一致,就会报404。 2、使用字典,对字典进行翻译。 在plugins/methods.js文件里面,加…

APP专项测试知识点

APP的专项测试 测试要点: 功能测试、兼容性测试、安装、卸载、升级测试、交叉事件测试、PUSH测试、性能测试-使用solopi监控-仅适用于安卓手机(CPU、内存、流量测试、电量测试、流畅度测试、启动测试)、用户体验测试、稳定性测试 &#xf…

Java 11 新特性解读(1)

目录 前言 新增了一系列字符串处理方法 Optional 加强 局部变量类型推断升级 前言 北京时间2018年9月26日,Oracle官方宣布Java 11正式发布。这是Java大版本周期变化后的第一个长期支持版本,非常值得关注。从官网即可下载,最新发布的Java11将带来ZGC、…

[C++] 自定义的类如何使用“cout“和“cin“?(含日期类实现)

一、引言 在C中,“cin”和"cout"可以说是区别于C语言的一大亮点。 但是,它的自动识别类型,其本质不过是运算符重载。若真到了能够“自动识别”的那一天,人类大概也能进入新的纪元了罢。 对于我们自己写的类&#xff…

uni-app之app上传pdf类型文件

通过阅读官方文档发现,uni.chooseFile在app端不支持非媒体文件上传; 可以使用这个插件,验证过可以上传pdf;具体使用可以去看文档 插件地址 就是还是会出现相机,这个可能需要自己解决下 实现功能:上传只能上…

vscode ssh远程的config/配置文件无法保存解决

问题 之前已经有了一个config,我想更改连接的地址和用户名,但是无法保存,显示需要管理员权限,但以管理员启动vscode或者以管理员权限保存都不行 未能保存“config”: Command failed: “D:\vscode\Microsoft VS Code\bin\code.c…

ssm+vue基于java的少儿编程网上报名系统源码和论文PPT

ssmvue基于java的少儿编程网上报名系统源码和论文PPT006 开发工具:idea 数据库mysql5.7(mysql5.7最佳) 数据库链接工具:navcat,小海豚等 开发技术:java ssm tomcat8.5 摘 要 在国家重视教育影响下,教育部门的密确配合下&#…

如何将Linux上的cpolar内网穿透设置成 - > 开机自启动

如何将Linux上的cpolar内网穿透设置成 - > 开机自启动 文章目录 如何将Linux上的cpolar内网穿透设置成 - > 开机自启动前言一、进入命令行模式二、输入token码三、输入内网穿透命令 前言 我们将cpolar安装到了Ubuntu系统上,并通过web-UI界面对cpolar的功能有…

[YAPI]导出API文档

1.登录点击进去,点击项目2.点击接口,点击编辑,划到最下面,开启开放接口3.点击数据管理, 选择你要的数据导出格式,点击公开接口, 导出完别忘记关闭,防止别人导的时候将你开启的 也一并下载下来

API 测试 | 了解 API 接口概念|电商平台 API 接口测试指南

什么是 API? API 是一个缩写,它代表了一个 pplication P AGC 软件覆盖整个房间。API 是用于构建软件应用程序的一组例程,协议和工具。API 指定一个软件程序应如何与其他软件程序进行交互。 例行程序:执行特定任务的程序。例程也称…