细节
-
改进
-
状态: Done">完成
-
媒介
-
解决方法: 完成
-
没有一个
-
1
-
是的
-
是的
-
是的
-
是的
描述
用户故事:
作为PT用户,我需要了解我正在使用PT - MongoDB -summary分析的MongoDB服务器中未使用和冗余索引的信息,以便了解这些索引,并可以进行未来的优化
UI / UX:
N/A
验收标准
- 通过运行pt-mongodb-summary对MongoDB服务器用户提供了额外的信息
超出范围:
- 数据的附加标志
建议的实现:
TBD
如何测试
设置
1.连接到集群中的MongoDB主节点
蒙戈127.0.0.1:17001 /管理
2.创建一个数据库,一个集合,并插入一些文档
为(var我= 0;i< 100;i++) {db.getSiblingDB(“testdb”) .test_col。插入({f1:我,f2: _rand () * 100, f3: _rand () * 300, f4: _rand () * 300, f5: (数学.random () + 1) .toString (36) .substring (2)});}
3.检查是否有文件(可选)
db.getSiblingDB (“testdb”100年).test_col.find () .count ()
4.创建一些索引
db.getSiblingDB (“testdb”) .test_col.createIndex ({“f1”: 1、“f2”: 1、“f3”: 1、“f4”: 1}, {“名称”:“idx_01”});db.getSiblingDB (“testdb”) .test_col.createIndex ({“f1”: 1、“f2”: 1、“f3”: 1}, {“名称”:“idx_02”});db.getSiblingDB (“testdb”) .test_col.createIndex ({“f1”: 1、“f2”: -1}, {“名称”:“idx_03”});db.getSiblingDB (“testdb”) .test_col.createIndex ({“f3”: -1}, {“名称”:“idx_04”});db.getSiblingDB (“testdb”) .test_col.createIndex ({“f4”: -1}, {“名称”:“idx_05”});db.getSiblingDB (“testdb”) .test_col.createIndex ({“f5”: -1}, {“名称”:“idx_06”});
5.运行查询以使用创建的索引之一
db.getSiblingDB (“testdb”) .test_col.find ({“f1”: {" $ gte”: 50}});
测试
运行该程序以获得未使用和重复的索引列表
在本例中,我使用检查所有命令,但你可以使用check-unused或check-duplicates命令。
./pt-mongodb-index-check——mongodb.uri=mongodb://127.0.0.1:17001——databases=testdb——all-collections check-all复制索引test_col、索引“idx_03”,其中字段{f1:1, f2:-1}是的前缀“idx_02”字段{f1:1, f2:-1, f3:1} testdb。test_col、索引“idx_03”,其中字段{f1:1, f2:-1}是的前缀“idx_01”字段{f1:1, f2:-1, f3:1, f4:1} testdb。test_col、索引“idx_02”,其中字段{f1:1, f2:-1, f3:1}是的前缀“idx_01”{f1:1, f2:-1, f3:1, f4:1}自上次重启以来未使用的索引。test_col、索引“idx_02”字段{f1:1}, f2:-1}, f3:1} testdb。test_col、索引“idx_03”字段{f1:1}, f2:-1} testdb。test_col、索引“idx_05”字段{f4:-1} testdb。test_col、索引“idx_04”字段{f3:-1} testdb。test_col、索引“idx_06”包含字段{f5:-1}
请注意idx_01没有出现在未使用的索引列表中,因为我们运行了一个查询来使用它。
细节:
查看附件脚本