Database Opt

11

Click here to load reader

description

Presented by Charlotte Tregelles and Christopher Lehneis on July 22, 2014 at The Flatiron School

Transcript of Database Opt

Page 1: Database Opt

Chris Lehneis Charlotte Tregelles

How to Deal with N + 1 Queries

Database Performance

Page 2: Database Opt

SCALABILITY

Page 3: Database Opt

Scalability Challenge

❖ Database only has a limited amount of connections.

❖ Bottleneck occurs when requests exceed number of connections.

Page 4: Database Opt

What are N + 1 Queries?!

!

❖ N + 1 problem: Loading many objects from the database, and for each object 1 or more queries are made.

Page 5: Database Opt

Models

Page 6: Database Opt

Controller and View

Page 7: Database Opt

Queries

❖ N+1 queries = potentially 100s of queries

❖ Average page has 5-6 queries

Page 8: Database Opt

Bullet

❖ Use eager loading to remove N + 1 queries

❖ Remove eager loading when unnecessary

❖ When to use counter cache

Page 9: Database Opt

Artists Table

Page 10: Database Opt

Summary

❖ Optimizing databases performance is essential for scalable web applications!

!

❖ Use eager loading, its awesome, but only when beneficial.

!

❖ Cache when counting objects

Page 11: Database Opt

“Wat?”