- 检查索引的大小
| > db.stats(){ "db" : "examples1", "collections" : 6, "objects" : 403787, "avgObjSize" : 121.9966467469235, "dataSize" : 49260660, "storageSize" : 66695168, "numExtents" : 20, "indexes" : 9, "indexSize" : 48524560, "fileSize" : 520093696, "nsSizeMB" : 16, "ok" : 1 } |
- Indexes : 在 examples1 数据库中的索引数目;
- indexSize : 在 examples1 数据库中索引的大小
| > db.address.stats(){ "ns" : "examples1.address", "count" : 3, "size" : 276, "avgObjSize" : 92, "storageSize" : 8192, "numExtents" : 1, "nindexes" : 2, "lastExtentSize" : 8192, "paddingFactor" : 1, "flags" : 1, "totalIndexSize" : 16352, "indexSizes" : { "_id_" : 8176, "_types_1" : 8176 }, "ok" : 1 } |
- totalIndexSize - 在数据集合( collection )所有索引的大小;
- indexSizes - 由索引名称与大小组成的字典( dictionary )
| (virtualenv) mongodb-tools$ ./index-stats.pyChecking DB: examples2.system.indexes Checking DB: examples2.things Checking DB: examples1.system.indexes Checking DB: examples1.address Checking DB: examples1.typeless_address Checking DB: examples1.user Checking DB: examples1.typeless_user Index Overview +----------------------------+--------------------------------+---------+-------------+ | Collection | Index | % Size | Index Size | +----------------------------+--------------------------------+----------+------------+ | examples1.address | _id_ | 0.0% | 7.98K | | examples1.address | _types_1 | 0.0% | 7.98K | | examples1.typeless_address | _id_ | 0.0% | 7.98K | | examples1.typeless_user | _id_ | 10.1% | 6.21M | | examples1.typeless_user | address_id_1 | 10.1% | 6.21M | | examples1.typeless_user | typeless_address_ref_1 | 5.9% | 3.62M | | examples1.user | _id_ | 10.1% | 6.21M | | examples1.user | _types_1 | 6.9% | 4.24M | | examples1.user | _types_1_address_id_1 | 12.2% | 7.51M | | examples1.user | _types_1_address_ref_1 | 26.2% | 16.09M | | examples2.things | _id_ | 10.1% | 6.21M | | examples2.things | _types_1 | 8.4% | 5.13M | +----------------------------+--------------------------------+----------+------------+ Top 5 Largest Indexes +----------------------------+--------------------------------+----------+------------+ | Collection | Index | % Size | Index Size | +----------------------------+--------------------------------+----------+------------+ | examples1.user | _types_1_address_ref_1 | 26.2% | 16.09M | | examples1.user | _types_1_address_id_ 1 | 12.2% | 7.51M | | examples1.typeless_user | _id_ | 10.1% | 6.21M | | examples2.things | _types_1 | 8.4% | 5.13M | | examples1.user | _types_1 | 6.9% | 4.24M | +----------------------------+--------------------------------+----------+------------+ Total Documents: 600016 Total Data Size: 74.77M Total Index Size: 61.43M RAM Headroom: 2.84G Available RAM Headroom: 1.04G |
- RAM Headroom是你的物理内存--索引大小。一个看起来不错的值意味着你有可用的RAM给索引来装入内存。
- Available RAM Headroom是空余内存--索引大小。因为这个系统上还有其他进程在消耗内存,所以我没有可用的总RAM Headroom。
| (virtualenv)mongodb-tools$ ./redundant-indexes.pyChecking DB: examples2 Checking DB: examples1 Index examples1.user[_types_1] may be redundant with examples1.user[_types_1_address_ref_1] Index examples1.user[_types_1] may be redundant with examples1.user[_types_1_address_id_1] Checking DB: local |
| > db.user.findOne(){ "_id" : ObjectId("4f2ef95c89a40a11c5000002"), "_types" : [ "User" ], "address_id" : ObjectId("4f2ef95c89a40a11c5000000"), "address_ref" : { "$ref" : "address", "$id" : ObjectId("4f2ef95c89a40a11c5000000") }, "_cls" : "User" } |
| class User(Document):meta {'index_types':False} |
| | examples1.user | address_id_1 | 9.5% | 6.21M || examples1.user | address_ref_1 | 20.9% | |