鉴于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的客户端驱动程序可识别集群/分区并且可以路由直接查询拥有密钥的集群中的正确节点。相比之下,设计为历史上与单实例数据库通信的vanilla Postgres客户端驱动程序并不知道如何在多个节点之间对表进行分片 - 因此可能会产生额外的节点跃点来处理请求。
此外,对于YSQL,YugaByte DB目前不是仅与单个分片/单行相关的特殊情况操作,而是在近期路线图中。所以这个差距应该很快就会弥合。