gpt4 book ai didi

Couchbase 5.5 : Why does putting '\\' in meta. id 使搜索更快吗?

转载 作者:行者123 更新时间:2023-12-03 06:52:54 28 4
gpt4 key购买 nike

沙发底座 5.5N1Ql

我在沙箱 couchbase 数据库中有 150k 文档,其中文档名称采用以下格式:

alpha_model::XXXXXXX::version

当我运行此命令时:

SELECT META().id FROM Q1036628 WHERE META().id LIKE "alpha_model::100004993::%" LIMIT 10;

结果计数:5。耗时为1.13s

但是,当我在“_”之前添加“\”时,性能大大提高到

SELECT META().id FROM Q1036628 WHERE META().id LIKE "alpha\\_model::100004993::%" LIMIT 10;

结果计数:5。耗时为8.16ms

为什么第二种方式快了100多倍?下划线不好吗?我是否应该转义其他字符以提高性能

最佳答案

_ 是通配符,匹配该位置的任何字符。如果你想精确搜索,你需要逃避它。结帐就像在 https://docs.couchbase.com/server/6.0/n1ql/n1ql-language-reference/comparisonops.html

由于结果相同,因此该位置可能没有任何其他角色。如果 _ 处有任何其他字符,结果将会不同。

由于 IndexScan 无法对通配符执行,因此 IndexScan 对前缀字符串执行直到第一个通配符。这就是没有转义字符 IndexScan 产生更多结果并花费时间的原因。通过转义 _,通配符从 % 开始。

执行解释并检查跨度的正确性和优化。

查看第 152 页,谓词如何转换为 IndexScan 跨度 https://blog.couchbase.com/wp-content/uploads/2017/10/N1QL-A-Practical-Guide-2nd-Edition.pdfCheckout 第 341 页使用请求分析优化查询。

关于Couchbase 5.5 : Why does putting '\\' in meta. id 使搜索更快吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54751175/

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