Azure Cosmos数据库中的索引
我有一个巨大的宇宙数据库收集。它有大约500K的记录,我的RU范围是1000RU/s。我已经为自定义列创建了列索引。下面是索引JSON模式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"
{
"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文档大小)
您可能有两种解决方案:
此查询将不使用该索引,因为无法从该索引提供的索引_。CONTAINS系统函数也是如此(相当于()的索引_>-1)。对于字符串系统函数,只有那些函数将使用索引:
- 启动(str_expr,str_expr)
- 左(str_expr,num_expr)=str_expr
- 子字符串(str_expr,num_expr,num_expr)=str_expr,但仅当第一个num_expr为0时