Yugabyte db P YSQL与YQL之间的性能差异

Yugabyte db P YSQL与YQL之间的性能差异,yugabyte-db,Yugabyte Db,根据“分布式SQL数据库基准测试”文档,YQL的吞吐量高于YSQL 如果我们使用相同的表结构和插入工具将是相同的,并且我没有使用任何类似SQL的功能,那么为什么与YSQL相比,YQL的性能更好?这可能是因为YQL和YSQL之间存在一些差异。请注意,虽然这些差异对体系结构来说不是根本性的,但它们表现出来是因为YSQL是从数据库上半部分的PostgreSQL代码开始的。其中许多正在得到加强 One-hop optimizationYCQL支持切分,知道底层数据库(称为DocDB)如何在节点之间切分和

根据“分布式SQL数据库基准测试”文档,YQL的吞吐量高于YSQL


如果我们使用相同的表结构和插入工具将是相同的,并且我没有使用任何类似SQL的功能,那么为什么与YSQL相比,YQL的性能更好?

这可能是因为YQL和YSQL之间存在一些差异。请注意,虽然这些差异对体系结构来说不是根本性的,但它们表现出来是因为YSQL是从数据库上半部分的PostgreSQL代码开始的。其中许多正在得到加强

One-hop optimizationYCQL支持切分,知道底层数据库(称为DocDB)如何在节点之间切分和分发数据。这意味着在使用PREPARE-BIND语句时,它可以直接“跳”到包含数据的节点。今天的YSQL无法做到这一点,因为这需要JDBC级别的协议更改,这项工作正在项目中完成

线程而不是进程YQL使用线程来处理传入的客户端查询/语句,而YSQL(和PostgreSQL代码)使用进程。这些进程的重量更重,这可能会影响某些场景中的吞吐量(以及某些其他场景中的连接可伸缩性)。这是计划中的另一项增强

Upsert vs insert在YQL中,默认情况下,每个插入都被视为Upsert(更新或插入,无需检查现有值),并且需要特殊语法来执行纯插入。在YSQL中,每次插入都需要在执行插入之前读取数据,因为如果密钥已经存在,则会将其视为失败

YQL性能方面有更多的工作目前(2019年底),重点只放在YSQL的正确性+功能上,而YQL性能方面已经做了很多工作。请注意,虽然性能方面的工作刚刚开始,但由于底层架构的原因,可以相对快速地提高性能