我在datastax (https://astra.datastax.com/)中创建了一个测试帐户,并希望测试cassandra。
在那里的主页上有一个cqlsh控制台。如果我选择数据,它的速度非常快,可能是1ms。
如果我将其与nodejs和cassandra驱动程序一起使用,则需要2-3秒。我只有一排。
为什么需要时间?是我的代码错误吗?
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();发布于 2021-07-21 16:27:30
不幸的是,这不是一个苹果对苹果的比较。
每次您的应用程序连接到Cassandra集群(Astra或其他)时,驱动程序都会执行这些高级步骤:
打开安全捆绑包以获取群集信息
连接到cluster
相比之下,当您访问Astra仪表板上的CQL控制台时,UI会自动连接+身份验证到群集,并且当您键入CQL语句时,它将经历以下步骤:
已跳过查询(您已向cluster)
正如您所看到的,CQL控制台与重复运行一个只有一条CQL语句的应用程序没有相同的开销。
实际上,您的应用程序将在整个应用程序生命周期中重用相同的集群会话来执行查询,因此它不会产生与重新运行上面的应用程序相同的开销。初始化阶段(上面的步骤1到6)仅在应用程序启动时完成。一旦它已经开始运行,它只需执行步骤7和步骤8。干杯!
https://stackoverflow.com/questions/67862855
复制相似问题