~/talk

"Normalize until it hurts; denormalize until it works" in Django

Talkat DjangoCon US 2018 · 2018-10-14..10-19· [databases, python]
slides:none on file

Explains why normalization must go beyond textbook normal forms with concrete Django examples of redundancy-caused anomalies, shows when historical fields must stay denormalized, and gives three actionable denormalization patterns: extend aggregate fetch. Demonstrates actual techniques: Postgres expression indexes and functions, materialized views via django-pgviews, and trigger-driven stale-flagging plus background recompute with django-dnorm (also covers lighter signal or save-hook approaches). Emphasizes profiling, concurrency pitfalls, and when caching or NoSQL are the right fixes.

AI-written summary · about

  1. 0:00Introduction to normalization and denormalization
  2. 1:05What normalization prevents
  3. 3:32Normalization rules
  4. 4:55Normalization in Django
  5. 7:01Historical data issues
  6. 9:09Query expressions
  7. 12:00Normalize vs denormalize
  8. 13:03Denormalization: Extend
  9. 15:31Denormalization: Aggregate
  10. 19:26Denormalization: Fetch
  11. 21:54Concurrency profiling
  12. 22:37Advanced denormalization
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.