Lesson 7 of 14
Designing for Reads vs Writes through Schema - 009
Normalize chesi SQL laaga feel avtunnara? Leka Denormalize chesi data duplication tho ibbandi padtunnara? Balance ekkada?
Core Explanation: Schema design is a trade-off. Optimize for Reads: Denormalize (duplicate data). Reads are fast (no lookups), but updates are heavy (must update all copies). Optimize for Writes: Normalize. Writes are fast (update once), but reads are slow ($lookup needed). Mee app lo Read:Write ratio 90:10 unte, Denormalize cheyyadaniki bayapadakandi.
Wrong Practice: Normalizing everything in a Read-Heavy app (e.g., E-commerce Product Page).
// Fetching product details requires 5 lookups
// Categories, Brands, Reviews, Variants...
Best Practice: Embed frequent read data.
// Product Doc
{
"name": "iPhone",
"brand": { "id": "b1", "name": "Apple" }, // Embedded snapshot
"category": "Electronics"
}
Closing Insight: "Data duplication is not a sin in MongoDB. It's a performance feature for reads."