yugabytedb - MYSQL与MYSQL的性能差异

标签 yugabytedb

根据文档“Benchmarking Distributed SQL Databases”可以看出,与 YSQL 相比,YCQL 的吞吐量更高。

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

最佳答案

这可能是因为 YCQL 和 YSQL 之间存在一些差异。请注意,虽然这些差异对于架构来说不是根本性的,但它们很明显,因为 YSQL 是从数据库上半部分的 PostgreSQL 代码开始的。其中许多正在得到增强。

一跳优化 YCQL 分片感知,并且知道底层数据库(称为 DocDB)如何跨节点分片和分发数据。这意味着在使用 PREPARE-BIND 语句时它可以直接“跳”到包含数据的节点。今天的 YSQL 无法做到这一点,因为这需要 JDBC 级别的协议(protocol)更改,这项工作正在 jdbc-yugabytedb 中完成。项目。

使用线程而不是进程 YCQL 使用线程来处理传入的客户端查询/语句,而 YSQL(和 PostgreSQL 代码)使用进程。这些进程的权重较大,这可能会影响某些情况下的吞吐量(以及某些其他情况下的连接可扩展性)。这是计划中的另一项增强功能。

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

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

关于yugabytedb - MYSQL与MYSQL的性能差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59490014/

相关文章:

yugabytedb - 如何在标准输出上以 yugabyte 打印更改数据日志?

database - YugaByte DB SQL API 是否支持数组类型

yugabytedb - 出现 fatal error : conversion between WIN1252 and UTF8 is not supported when connecting to YSQL from Windows

sql - 哪些分布式SQL数据库将同一租户的不同表的数据放在同一节点?

yugabytedb - 如何使用 YCQL 查询返回特定平板电脑

database - Yugabyte DB 中的静态加密如何工作?

database - 对于简单的键值模式,YugaBytes 在 Redis 客户端和 Postgres 客户端之间的性能比较如何?

database - Apache Cassandra 与 YugaByte 的兼容性