一、MongoDB的下载、安装与部署

二、MongoDB的基础知识简介

三、MongoDB的创建、更新和删除

四、MongoDB的查询

五、MongoDB的索引

1、简介

它就像是一本书的目录,如果没有它,我们就需要对整个书籍进行查找来获取需要的结果,即所说的全盘扫描;

而有了目录(索引)之后就可以通过它帮我们定位到目标所在的位置,快速的获取我们想要的结果。

2、演示

第一步,向用户集合users中插入100W条数据

 1 var insertUsers = function() {
 2     var start = new Date().getTime();
 3     for (var i = 1; i <= 1000000; i++) {
 4         db.users.insert({
 5             "userid": i,
 6             "username": "wjg" + i,
 7             "age": Math.floor(Math.random() * 100), //年龄为0~99的随机整数
 8             "createdate": new Date()
 9         })
10     }
11     var end = new Date().getTime();
12     print("插入100W条数据共耗时" + (end - start) / 1000 + "");
13 }

LZ的渣渣I3和4G内存总共耗时了484.623秒,约8分多钟。任务管理器里边可以很清楚的看到当时CPU、内存和磁盘使用率都普遍的增高。五、MongoDB的索引

第二步:查询用户名为“wjg465413”的文档对象

 1 db.users.find({username:"wjg465413"}).explain("allPlansExecution")
 2 {
 3         "queryPlanner" : {
 4                 "plannerVersion" : 1,
 5                 "namespace" : "test.users",
 6                 "indexFilterSet" : false,
 7                 "parsedQuery" : {
 8                         "username" : {
 9                                 "$eq" : "wjg465413"
10                         }
11                 },
12                 "winningPlan" : {
13                         "stage" : "COLLSCAN",
14                         "filter" : {
15                                 "username" : {
16                                         "$eq" : "wjg465413"
17                                 }
18                         },
19                         "direction" : "forward"
20                 },
21                 "rejectedPlans" : [ ]
22         },
23         "executionStats" : {
24                 "executionSuccess" : true,
25                 "nReturned" : 1,
26                 "executionTimeMillis" : 865,
27                 "totalKeysExamined" : 0,
28                 "totalDocsExamined" : 1000000,
29                 "executionStages" : {
30                         "stage" : "COLLSCAN",
31                         "filter" : {
32                                 "username" : {
33                                         "$eq" : "wjg465413"
34                                 }
35                         },
36                         "nReturned" : 1,
37                         "executionTimeMillisEstimate" : 770,
38                         "works" : 1000002,
39                         "advanced" : 1,
40                         "needTime" : 1000000,
41                         "needFetch" : 0,
42                         "saveState" : 7813,
43                         "restoreState" : 7813,
44                         "isEOF" : 1,
45                         "invalidates" : 0,
46                         "direction" : "forward",
47                         "docsExamined" : 1000000
48                 },
49                 "allPlansExecution" : [ ]
50         },
51         "serverInfo" : {
52                 "host" : "Jack",
53                 "port" : 27017,
54                 "version" : "3.0.3",
55                 "gitVersion" : "b40106b36eecd1b4407eb1ad1af6bc60593c6105"
56         },
57         "ok" : 1
58 }
View Code

相关文章:

  • 2022-12-23
  • 2021-05-23
  • 2021-09-28
  • 2021-12-31
  • 2022-01-24
猜你喜欢
  • 2021-08-28
  • 2021-04-07
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案