查询是否在 couchbase 中并行化

Does a query get parallelized in couchbase

我在浏览文档时找不到这个问题的答案。如果我 运行 使用 couchbase 的 QUERY 节点进行查询,couchbase 是否会根据查询节点中可用的核心自动将查询拆分为多个部分以并行 运行 SQL。例如,如果我有如下查询

SELECT * FROM bucket1;

查询节点有8个核心,上面的查询是否被拆分成8个部分?

示例查询:

SELECT *
FROM bucket1
WHERE ...;

以上查询首先需要解析、准备、计划。以上都是运行连载。 Plan 生成各种运算符(Authorize、IndexScan、Fetch、Filter、Projection 等)。 在执行过程中,假设没有阻塞操作(如分组、聚合、排序),每个运算符 运行 独立地并行处理不同的文档。在 Fetch 中,它使用尽可能多的内核来获取数据。 检查 EXPLAIN 是否存在并行运算符。默认情况下它是 1,您可以通过设置查询参数 max_parallelism 来更改它(将更改这些运算符 运行 并行的副本数)(每个工作不同的文档)。由于上下文切换,设置较高的值可能会产生负面影响。

以下两个链接有图表,解释了更多细节。

https://docs.couchbase.com/server/5.0/architecture/querying-data-with-n1ql.html https://dzone.com/articles/new-performance-tricks-with-n1ql

注意:CE 版查询服务仅使用 4 个内核。