gpt4 book ai didi

sql - 为什么 INSERT 查询比 SELECT 慢 3-4 倍?

转载 作者:行者123 更新时间:2023-12-05 04:37:08 25 4
gpt4 key购买 nike

应用程序使用 YCQL 驱动程序 (Gocql) 与 YugabyteDB 实例对话。我们有以下两个查询(例如):

SELECT col2,
col3,
col4,
col5
FROM table1
WHERE primarykeycol = 11ab8b12 - a934 - 4f2e - 8a0d - e7eba3faa47f;

INSERT INTO table1
(
primarykeycol,
col2,
col3,
col4,
col5
)
VALUES
(
11ab8b12-a934-4f2e-8a0d-e7eba3faa47f,
222b8b12-a934-4f2e-8a0d-e7eba3faa47f,
'someString',
totimestamp(now()),
totimestamp(now())
)
IF NOT EXISTS returns status AS ROW;

从过去 7 天开始,来自 YugaWare 的数据指标,每个 SELECT 查询(如上所示)始终花费 10 毫秒,而每个 INSERT 查询需要 30-40 毫秒。


当在 SELECT 查询上运行 explain 语句时说:

QUERY PLAN

Primary Key look up on keySpaceName.table1
Key Conditions: (primarykeyCol = 11ab8b12-a934-4f2e-8a0d-e7eba3faa47f)

INSERT 查询上运行 explain 语句说:

QUERY PLAN

Insert on keySpaceName.table1

节点集群的复制因子为3。

基于 YugaWare 指标,为什么 INSERT 查询比 SELECT 慢 3-4 倍?

最佳答案

如果您的 RF > 1,则插入操作会经历一个分布式事务循环,其中记录存储在大多数副本上(如果 RF=3,则为 2;如果 RF=4,则为 3,如果 RF=7,则为 5 ).但是,在 SELECT 的情况下,记录仅从一个 tablet 中读取(假设您正在检索 1 条记录)。

假设您一遍又一遍地选择同一行,它应该缓存在内存中,您应该会体验到主要的网络延迟。这也取决于您是否正在点击具有 tablet-leader 的节点。

关于sql - 为什么 INSERT 查询比 SELECT 慢 3-4 倍?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70749566/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com