Books & Videos

Table of Contents

  1. Chapter 1 Application Design Tips

    1. Tip #1: Duplicate data for speed, reference data for integrity

    2. Tip #2: Normalize if you need to future-proof data

    3. Tip #3: Try to fetch data in a single query

    4. Tip #4: Embed dependent fields

    5. Tip #5: Embed “point-in-time” data

    6. Tip #6: Do not embed fields that have unbound growth

    7. Tip #7: Pre-populate anything you can

    8. Tip #8: Preallocate space, whenever possible

    9. Tip #9: Store embedded information in arrays for anonymous access

    10. Tip #10: Design documents to be self-sufficient

    11. Tip #11: Prefer $-operators to JavaScript

    12. Tip #12: Compute aggregations as you go

    13. Tip #13: Write code to handle data integrity issues

  2. Chapter 2 Implementation Tips

    1. Tip #14: Use the correct types

    2. Tip #15: Override _id when you have your own simple, unique id

    3. Tip #16: Avoid using a document for _id

    4. Tip #17: Do not use database references

    5. Tip #18: Don’t use GridFS for small binary data

    6. Tip #19: Handle “seamless” failover

    7. Tip #20: Handle replica set failure and failover

  3. Chapter 3 Optimization Tips

    1. Tip #21: Minimize disk access

    2. Tip #22: Use indexes to do more with less memory

    3. Tip #23: Don’t always use an index

    4. Tip #24: Create indexes that cover your queries

    5. Tip #25: Use compound indexes to make multiple queries fast

    6. Tip #26: Create hierarchical documents for faster scans

    7. Tip #27: AND-queries should match as little as possible as fast as possible

    8. Tip #28: OR-queries should match as much as possible as soon as possible

  4. Chapter 4 Data Safety and Consistency

    1. Tip #29: Write to the journal for single server, replicas for multiserver

    2. Tip #30: Always use replication, journaling, or both

    3. Tip #31: Do not depend on repair to recover data

    4. Tip #32: Understand getlasterror

    5. Tip #33: Always use safe writes in development

    6. Tip #34: Use w with replication

    7. Tip #35: Always use wtimeout with w

    8. Tip #36: Don’t use fsync on every write

    9. Tip #37: Start up normally after a crash

    10. Tip #38: Take instant-in-time backups of durable servers

  5. Chapter 5 Administration Tips

    1. Tip #39: Manually clean up your chunks collections

    2. Tip #40: Compact databases with repair

    3. Tip #41: Don’t change the number of votes for members of a replica set

    4. Tip #42: Replica sets can be reconfigured without a master up

    5. Tip #43: --shardsvr and --configsvr aren’t required

    6. Tip #44: Only use --notablescan in development

    7. Tip #45: Learn some JavaScript

    8. Tip #46: Manage all of your servers and databases from one shell

    9. Tip #47: Get “help” for any function

    10. Tip #48: Create startup files

    11. Tip #49: Add your own functions

    12. Tip #50: Use a single connection to read your own writes