Update MongoDB_索引.md
This commit is contained in:
parent
ea03a752bc
commit
b02e1c0470
@ -132,11 +132,11 @@ db.user.createIndex( { name: -1,birthday: 1} )
|
|||||||
|
|
||||||
所以应该尽量避免创建冗余的索引,冗余索引会导致额外的性能开销。即如果你创建了索引 `{ name: -1, birthday: 1} `,那么再创建 `{name:-1}` 索引,就属于冗余创建。
|
所以应该尽量避免创建冗余的索引,冗余索引会导致额外的性能开销。即如果你创建了索引 `{ name: -1, birthday: 1} `,那么再创建 `{name:-1}` 索引,就属于冗余创建。
|
||||||
|
|
||||||
对于复合索引还需要注意它在排序上的限制,例如索引 `{a:1, b:-1}` 支持 `{a:1, b:-1}` 和 `{a:-1, b:1}` 形式的排序查询,但不支持 `{a: - 1, b:-1} ` 或 `{a:1, b:1}` 的排序查询。即字段的排序规则要么与索引键的排序规则完全相同,要么完全相反,此时才能进行双向遍历查找。
|
对于复合索引还需要注意它在排序上的限制,例如索引 `{a:1, b:-1}` 支持 `{a:1, b:-1}` 和 `{a:-1, b:1}` 形式的排序查询,但不支持 `{a:-1, b:-1} ` 或 `{a:1, b:1}` 的排序查询。即字段的排序规则要么与索引键的排序规则完全相同,要么完全相反,此时才能进行双向遍历查找。
|
||||||
|
|
||||||
### 2.3 多键索引
|
### 2.3 多键索引
|
||||||
|
|
||||||
如果索引包含类型为数组的字段,MongoDB 会自动为数组中的每个元素创建单独的索引条目,这就是多键索引。MongoDB 使用多键索引来优化查询存储在数组中的内容。创建示例如下:
|
如果索引包含类型为数组的字段,MongoDB 会自动为数组中的每个元素创建单独的索引条目,这就是多键索引。MongoDB 使用多键索引来优化查询存储在数组中的内容,示例如下:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
db.user.createIndex( { Hobby: 1 } )
|
db.user.createIndex( { Hobby: 1 } )
|
||||||
@ -144,7 +144,7 @@ db.user.createIndex( { Hobby: 1 } )
|
|||||||
|
|
||||||
### 2.4 哈希索引
|
### 2.4 哈希索引
|
||||||
|
|
||||||
为了支持基于哈希分片,MongoDB 提供了哈希索引,通过对索引值进行哈希运算然后计算出所处的分片位置。语法如下:
|
为了支持哈希分片,MongoDB 提供了哈希索引,通过对索引值进行哈希运算然后计算出所处的分片位置。语法如下:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
db.collection.createIndex( { _id: "hashed" } )
|
db.collection.createIndex( { _id: "hashed" } )
|
||||||
@ -275,7 +275,7 @@ db.user.dropIndex("name_-1")
|
|||||||
db.user.dropIndex({ name: -1,birthday: 1})
|
db.user.dropIndex({ name: -1,birthday: 1})
|
||||||
```
|
```
|
||||||
|
|
||||||
如果想要删除全部的索引,则可以调用 `dropIndexes` 方法,需要注意的是建立在 `_id` 上的默认索引是不会被删除的。
|
如果想要删除全部的索引,则可以调用 `dropIndexes` 方法,需要注意的是建立在 `_id` 上的默认索引是不会被删除的:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
db.collection.dropIndexes()
|
db.collection.dropIndexes()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user