Slow Query Analyzer and Smart MongoDB indexing at NodeChef

Our team is excited to announce that we have released a new feature, Slow Query Analyzer & Indexing, making one aspect of improving mongoDB performance very simple for our customers.

One of the most important things to get right when it comes to improving performance of your mongoDB database is database indexing. If your data isn’t indexed at all, every query will have to perform a full table scan to return even a single document, making your database slow. But if your data is indexed appropriately, the number of documents to scan to return a query result should be low, thereby, increasing performance.

The Slow Query Analyzer & Indexing analyzes your data and query access patterns. It then identifies slow-running queries and presents you with recommendations for new indexes that can be created to improve query performance.

Opt-in automatic indexing is also supported. Enabling this feature automatically creates any indexes suggested by the Slow Query Analyzer. Compound indexing and index intersection capabilities of MongoDB are both accounted for during index selection. Attributes selection is deterministic using the two variables the cardinality score of the attribute and operator precedence. You should notice a new collection with name "__NCCardinalityMatrix" in your database. This collection stores the cardinality matrix.

All mongoDB databases on NodeChef come with this feature. Simply log into the NodeChef dashboard and simply choose the database you want to view slow queries and optimize. Under DB actions, click Slow Query Analyzer & Indexing. This will open the Slow Query Analyzer and Indexing window where you can click to add the recommended index, allowing you to easily optimize your deployment with minimal effort and risk. Alternatively, you can enable automatic indexing which rolls-out new indexes across your production system according to best practices.

We have spent the last two years running mongoDB databases for our customers. We believe that developers shouldn’t be experts in mongoDB to build beautiful performant apps and this feature is very important in achieving this.

Let us know what you think about this feature.