## mongodb-tools - Utilities for working with MongoDB * collection-stats.py - Display statistics about the collections in all databases * index-stats.py - Displays statistics about the indexes in all databases * redundant-indexes.py - Finds indexes that may be redundant ## Blogs And Articles * [Optimizing MongoDB Indexes](http://jasonwilder.com/blog/2012/02/08/optimizing-mongodb-indexes/) * [Design and Performance Tips for MongoDB Indexes](https://www.openshift.com/blogs/design-and-performance-tips-for-mongodb-indexes) ## Dependencies python-virtualenv python-dev ## Installation git clone https://github.com/jwilder/mongodb-tools cd mongodb-tools ./setup.sh source virtualenv/bin/activate ## Test Data Setup In on terminal run: $ ./run-mongo.sh In another terminal run: $ python examples/testdata.py ## collection-stats.py ## $ ./collection-stats.py Checking 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 +----------------------------+--------+--------+---------+--------------+---------+------------+ | Collection | Count | % Size | DB Size | Avg Obj Size | Indexes | Index Size | +----------------------------+--------+--------+---------+--------------+---------+------------+ | examples1.address | 2 | 0.0% | 184.00b | 92.00b | 2 | 15.97K | | examples1.system.indexes | 9 | 0.0% | 912.00b | 101.33b | 0 | 0.00b | | examples1.typeless_address | 2 | 0.0% | 216.00b | 108.00b | 1 | 7.98K | | examples2.system.indexes | 2 | 0.0% | 164.00b | 82.00b | 0 | 0.00b | | examples1.typeless_user | 101879 | 26.7% | 10.10M | 104.00b | 3 | 8.18M | | examples1.user | 101879 | 36.0% | 13.60M | 140.00b | 3 | 15.20M | | examples2.things | 100000 | 37.3% | 14.11M | 148.00b | 2 | 5.67M | +----------------------------+--------+--------+---------+--------------+---------+------------+ Total Documents: 303773 Total Data Size: 37.82M Total Index Size: 29.08M RAM Headroom: 2.87G RAM Used: 2.74G (61.6%) Available RAM Headroom: 1.10G ## index-stats.py $ ./index-stats.py Checking 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.9% | 3.17M | | examples1.typeless_user | address_id_1 | 10.9% | 3.17M | | examples1.typeless_user | typeless_address_ref_1 | 6.4% | 1.85M | | examples1.user | _id_ | 10.9% | 3.17M | | examples1.user | _types_1_address_id_1 | 13.2% | 3.84M | | examples1.user | _types_1_address_ref_1 | 28.2% | 8.20M | | examples2.things | _id_ | 10.7% | 3.11M | | examples2.things | _types_1 | 8.8% | 2.56M | +----------------------------+------------------------+--------+------------+ Top 5 Largest Indexes +-------------------------+------------------------+--------+------------+ | Collection | Index | % Size | Index Size | +-------------------------+------------------------+--------+------------+ | examples1.user | _types_1_address_ref_1 | 28.2% | 8.20M | | examples1.user | _types_1_address_id_1 | 13.2% | 3.84M | | examples1.typeless_user | _id_ | 10.9% | 3.17M | | examples2.things | _id_ | 10.7% | 3.11M | | examples2.things | _types_1 | 8.8% | 2.56M | +-------------------------+------------------------+--------+------------+ Total Documents: 303773 Total Data Size: 37.82M Total Index Size: 29.08M RAM Headroom: 2.87G RAM Used: 2.73G (61.4%) Available RAM Headroom: 1.11G