对于简单的键值模式,YugaBytes 在 Redis 客户端和 Postgres 客户端之间的性能比较如何?
How does YugaBytes performance compare between Redis client and Postgres client for simple Key-Value schema?
鉴于 YugaByte 为 Redis 和 Postgres 提供客户端驱动程序,我想知道如果以类似的方式使用两者之间的性能差异。
例如,假设 Postgres table 有 2 个列,1 个 VARCHAR 作为主键,1 个 TEXT 列用于数据。针对此 table 执行的唯一查询是 INSERT INTO
、UPDATE
、SELECT val
、SELECT EXISTS(...)
、DELETE FROM
,所有查询均具有 WHERE primary_key_constraint = val
条件.
用法类似于 Redis 操作 SET
、GET
、EXISTS
、DEL
。
与 Redis 驱动程序相比,Postgres 驱动程序是否会增加这些操作的开销?
这些应该处于相似的范围内——但更准确地说,通过 YCQL/YEDIS API 的性能预计会比 YSQL API 更快,主要是因为YCQL/YEDIS 的客户端驱动程序是 cluster/partitioning 感知的,可以将查询直接路由到集群中拥有密钥的正确节点。相比之下,vanilla Postgres 客户端驱动程序,过去设计用于与单实例数据库对话,不知道表是如何跨多个节点分片的——因此可能会产生额外的节点跳转来处理请求。
此外,对于 YSQL,YugaByte DB 目前没有仅与 single-shard/single-row 相关的特殊情况操作,但这在近期路线图上。所以这个差距应该很快就会弥合。
鉴于 YugaByte 为 Redis 和 Postgres 提供客户端驱动程序,我想知道如果以类似的方式使用两者之间的性能差异。
例如,假设 Postgres table 有 2 个列,1 个 VARCHAR 作为主键,1 个 TEXT 列用于数据。针对此 table 执行的唯一查询是 INSERT INTO
、UPDATE
、SELECT val
、SELECT EXISTS(...)
、DELETE FROM
,所有查询均具有 WHERE primary_key_constraint = val
条件.
用法类似于 Redis 操作 SET
、GET
、EXISTS
、DEL
。
与 Redis 驱动程序相比,Postgres 驱动程序是否会增加这些操作的开销?
这些应该处于相似的范围内——但更准确地说,通过 YCQL/YEDIS API 的性能预计会比 YSQL API 更快,主要是因为YCQL/YEDIS 的客户端驱动程序是 cluster/partitioning 感知的,可以将查询直接路由到集群中拥有密钥的正确节点。相比之下,vanilla Postgres 客户端驱动程序,过去设计用于与单实例数据库对话,不知道表是如何跨多个节点分片的——因此可能会产生额外的节点跳转来处理请求。
此外,对于 YSQL,YugaByte DB 目前没有仅与 single-shard/single-row 相关的特殊情况操作,但这在近期路线图上。所以这个差距应该很快就会弥合。