鉴于YugaByte为Redis和Postgres提供了客户端驱动程序,我想知道如果以类似的方式使用两者之间的性能差异。
例如,假设一个 Postgres 表包含 2 列,1 VARCHAR 作为主键,1 个 TEXT 列用于数据。针对此表执行的唯一查询是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 的客户端驱动程序是集群/分区感知的,可以将查询直接路由到集群中拥有密钥的正确节点。相比之下,原版 Postgres 客户端驱动程序(旨在与单实例数据库进行历史通信)不知道表是如何跨多个节点分片的,因此可能会导致额外的节点跃点来处理请求。
此外,对于 YSQL,YugaByte DB 目前没有只与单分片/单行相关的特殊情况操作,但这是近期的路线图。因此,这一差距应该很快就会弥合。