Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure Cosmos数据库中的索引_Azure_Nosql_Azure Cosmosdb - Fatal编程技术网

Azure Cosmos数据库中的索引

Azure Cosmos数据库中的索引,azure,nosql,azure-cosmosdb,Azure,Nosql,Azure Cosmosdb,我有一个巨大的宇宙数据库收集。它有大约500K的记录,我的RU范围是1000RU/s。我已经为自定义列创建了列索引。下面是索引JSON模式 { "indexingMode": "consistent", "automatic": true, "includedPaths": [ { "path": "/Column1/?", "indexes": [ { "kind": "Range"

我有一个巨大的宇宙数据库收集。它有大约500K的记录,我的RU范围是1000RU/s。我已经为自定义列创建了列索引。下面是索引JSON模式

{
    "indexingMode": "consistent",
    "automatic": true,
    "includedPaths": [
      {
        "path": "/Column1/?",
        "indexes": [
          {
            "kind": "Range",
            "dataType": "String",
            "precision": -1
          }
        ]
      },
      {
        "path": "/Column2/?",
        "indexes": [
          {
            "kind": "Range",
            "dataType": "String",
            "precision": -1
          }
        ]
      }
    ],
    "excludedPaths": [
      {
        "path":"/Column4/*"
      }
    ]
}
下面是我的收藏结构

{
    "Column1": "Data1",
    "Column2": "Data2",
    "Column3": "Data3",
    "Column4": "Data4"
}

当我触发以下选择查询(
select*FROM r where INDEX_OF(r.Column2,'Data2')>-1
)时,它返回正确的值。但它会批量执行,而不是从索引中获取值。例如,查询应该只返回一条记录。但它返回空白,并带有延续标记。我希望索引应该返回现有索引中的记录。有什么我错过的吗

了解RU限制,您有1000 RU意味着,您不能在一秒钟内读取超过1000个文档(1kb文档大小)

您可能有两种解决方案:

  • 你可以提高设置。(临时增加)

  • 您可以通过continuation令牌继续查找下一组结果,并继续添加它,以便获得总计数。(可能在sdk中)


  • 此查询将不使用该索引,因为无法从该索引提供的索引_。CONTAINS系统函数也是如此(相当于()的索引_>-1)。对于字符串系统函数,只有那些函数将使用索引:

    • 启动(str_expr,str_expr)
    • 左(str_expr,num_expr)=str_expr
    • 子字符串(str_expr,num_expr,num_expr)=str_expr,但仅当第一个num_expr为0时

    您使用索引而不是字符串比较有什么原因吗?@DavidMakogon您能再解释一下吗谢谢您的快速回复。您提供的详细信息对索引的使用有很大帮助。除此之外,我们还需要另一个关于检索记录总数的帮助。下面给出的查询用于检索集合中可用记录的总数。从c中选择COUNT(1),其中c.Column1位于('Data2')。这里,该查询使用延续标记从多个集合检索数据。这会延迟总计数结果。您能告诉我我们是否可以使用索引来增加查询性能而不增加RU。