首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么测试node.js应用程序比在Astra CQL控制台中运行查询要慢?

为什么测试node.js应用程序比在Astra CQL控制台中运行查询要慢?
EN

Stack Overflow用户
提问于 2021-06-07 03:16:53
回答 1查看 55关注 0票数 0

我在datastax (https://astra.datastax.com/)中创建了一个测试帐户,并希望测试cassandra。

在那里的主页上有一个cqlsh控制台。如果我选择数据,它的速度非常快,可能是1ms。

如果我将其与nodejs和cassandra驱动程序一起使用,则需要2-3秒。我只有一排。

为什么需要时间?是我的代码错误吗?

代码语言:javascript
复制
const { Client } = require("cassandra-driver");

async function run() {
  const client = new Client({
    cloud: {
      secureConnectBundle: "secure-connect-weinf.zip",
    },
    keyspace: 'wf_db',
    credentials: {
      username: "admin",
      password: "password",
    },
  });

  await client.connect();

  // Execute a query
  const rs = await client.execute("SELECT * FROM employ_by_id;");
  console.log(`${rs}`);

  await client.shutdown();
}

// Run the async function
run();
EN

回答 1

Stack Overflow用户

发布于 2021-07-21 16:27:30

不幸的是,这不是一个苹果对苹果的比较。

每次您的应用程序连接到Cassandra集群(Astra或其他)时,驱动程序都会执行这些高级步骤:

打开安全捆绑包以获取群集信息

  • 通过connection

  • Discover打开TCP连接到群集中的一个节点的控制连接使用控制connection

  • Open从群集获取架构使用控制

连接到cluster

  • Compute查询计划中的节点(根据负载平衡策略连接到的主机列表)
  1. ,最后运行查询

相比之下,当您访问Astra仪表板上的CQL控制台时,UI会自动连接+身份验证到群集,并且当您键入CQL语句时,它将经历以下步骤:

已跳过查询(您已向cluster)

  • Skipped进行身份验证(已连接到同一本地VPC内的节点)已跳过查询(已连接到cluster)

  • Skipped )已连接到cluster)

  • Skipped (已连接到cluster)

  • Skipped )已连接到cluster)

  • Skipped (已连接到群集)

  • ,最后,运行

正如您所看到的,CQL控制台与重复运行一个只有一条CQL语句的应用程序没有相同的开销。

实际上,您的应用程序将在整个应用程序生命周期中重用相同的集群会话来执行查询,因此它不会产生与重新运行上面的应用程序相同的开销。初始化阶段(上面的步骤1到6)仅在应用程序启动时完成。一旦它已经开始运行,它只需执行步骤7和步骤8。干杯!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67862855

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档