对于简单的键值模式,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 INTOUPDATESELECT valSELECT EXISTS(...)DELETE FROM,所有查询均具有 WHERE primary_key_constraint = val 条件.

用法类似于 Redis 操作 SETGETEXISTSDEL

与 Redis 驱动程序相比,Postgres 驱动程序是否会增加这些操作的开销?

这些应该处于相似的范围内——但更准确地说,通过 YCQL/YEDIS API 的性能预计会比 YSQL API 更快,主要是因为YCQL/YEDIS 的客户端驱动程序是 cluster/partitioning 感知的,可以将查询直接路由到集群中拥有密钥的正确节点。相比之下,vanilla Postgres 客户端驱动程序,过去设计用于与单实例数据库对话,不知道表是如何跨多个节点分片的——因此可能会产生额外的节点跳转来处理请求。

此外,对于 YSQL,YugaByte DB 目前没有仅与 single-shard/single-row 相关的特殊情况操作,但这在近期路线图上。所以这个差距应该很快就会弥合。