Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
50 Tips and Tricks for MongoDB Developers
SPECIAL OFFER: Upgrade this ebook with O’Reilly
Preface
Who This Book Is For
Conventions Used in This Book
Using Code Examples
Safari® Books Online
How to Contact Us
1. Application Design Tips
Tip #1: Duplicate data for speed, reference data for integrity
Example: a shopping cart order
Decision factors
Tip #2: Normalize if you need to future-proof data
Tip #3: Try to fetch data in a single query
Example: a blog
Example: an image board
Tip #4: Embed dependent fields
Tip #5: Embed “point-in-time” data
Tip #6: Do not embed fields that have unbound growth
Tip #7: Pre-populate anything you can
Tip #8: Preallocate space, whenever possible
Tip #9: Store embedded information in arrays for anonymous access
Tip #10: Design documents to be self-sufficient
Tip #11: Prefer $-operators to JavaScript
Behind the scenes
Getting better performance
Tip #12: Compute aggregations as you go
Tip #13: Write code to handle data integrity issues
2. Implementation Tips
Tip #14: Use the correct types
Tip #15: Override _id when you have your own simple, unique id
Tip #16: Avoid using a document for _id
Tip #17: Do not use database references
Tip #18: Don’t use GridFS for small binary data
Tip #19: Handle “seamless” failover
Tip #20: Handle replica set failure and failover
3. Optimization Tips
Tip #21: Minimize disk access
Fuzzy Math
Tip #22: Use indexes to do more with less memory
Tip #23: Don’t always use an index
Write speed
Tip #24: Create indexes that cover your queries
Tip #25: Use compound indexes to make multiple queries fast
Tip #26: Create hierarchical documents for faster scans
Tip #27: AND-queries should match as little as possible as fast as possible
Tip #28: OR-queries should match as much as possible as soon as possible
4. Data Safety and Consistency
Tip #29: Write to the journal for single server, replicas for multiserver
Tip #30: Always use replication, journaling, or both
Tip #31: Do not depend on repair to recover data
Tip #32: Understand getlasterror
Tip #33: Always use safe writes in development
Tip #34: Use w with replication
Tip #35: Always use wtimeout with w
Tip #36: Don’t use fsync on every write
Tip #37: Start up normally after a crash
Tip #38: Take instant-in-time backups of durable servers
5. Administration Tips
Tip #39: Manually clean up your chunks collections
Tip #40: Compact databases with repair
Tip #41: Don’t change the number of votes for members of a replica set
Tip #42: Replica sets can be reconfigured without a master up
Tip #43: --shardsvr and --configsvr aren’t required
Tip #44: Only use --notablescan in development
Tip #45: Learn some JavaScript
Tip #46: Manage all of your servers and databases from one shell
Tip #47: Get “help” for any function
Tip #48: Create startup files
Tip #49: Add your own functions
Loading JavaScript from files
Tip #50: Use a single connection to read your own writes
About the Author
SPECIAL OFFER: Upgrade this ebook with O’Reilly
Copyright
← Prev
Back
Next →
← Prev
Back
Next →