我正在尝试为Cosmos DB中的Dogs数组建立索引,但是在Azure门户的索引策略部分中添加索引完全不会改变成本。我读了他们的索引策略,是的,他们说默认情况下所有字段都被索引了,对于列表/复杂对象,里面的字段也被索引了..但是它们是吗?
{
"indexingMode": "consistent",
"automatic": true,
"includedPaths": [
{
"path": "/*",
"indexes": [
{
"kind": "Range",
"dataType": "Number",
"precision": -1
},
{
"kind": "Range",
"dataType": "String",
"precision": -1
},
{
"kind": "Spatial",
"dataType": "Point"
}
]
},
{
"path": "/Dogs/[]/?",
"indexes": [
{
"kind": "Range",
"dataType": "String",
"precision": -1
},
{
"kind": "Range",
"dataType": "Number",
"precision": -1
}
]
}
],
"excludedPaths": [
{
"path": "/\"_etag\"/?"
}
]
}
添加第二条路径应特别涵盖我的对象列表,但所做的更改完全不反映查询的成本。
是否可能需要花费一些时间并且索引不会立即反映出来,而是会在几个小时后反映出来?数据库非常胖,条目超过10万。
编辑::似乎创建索引为查询带来了一些改进(将路径添加到排除的路径以检查差异,并且可见)
答案 0 :(得分:0)
您似乎已经知道,答案是“是的,默认情况下已对它们进行索引,因此您看不到专门为它们编制索引的任何区别。”
通过by,您可以在此处回答自己的问题并接受。您不会获得任何积分,但是我经常这样做,出于几个原因,这是个好主意。首先,它显示了问题的答案,其次,它使答案更清晰,并使您的问题成为遇到相同问题的其他所有人的资源。随意忽略这个答案,自己做。
答案 1 :(得分:0)
似乎已创建索引并为查询带来了一些改进(将路径添加到排除的路径以检查差异,并且可见),因此我认为默认情况下确实对列表进行了索引。