[RUBY] [N + 1 Problem]

Was ist das N + 1-Problem?

Ein Problem, das auftritt, wenn Modelle in einer Zuordnung miteinander verknüpft sind.

Zum Beispiel, wenn ein Benutzer und ein Beitrag in einer App wie Twitter verknüpft sind Wenn Sie beim Anzeigen einer Liste von Beiträgen auf der obersten Seite jedes Mal auf die Datenbank zugreifen, um nach dem Benutzer zu suchen, der jedem Beitrag zugeordnet ist, verringert sich die Leistung der Anwendung.

Wenn Sie 10.000 Beiträge haben, müssen Sie 10.000 Mal auf die Datenbank zugreifen.

Dieses Problem wird als N + 1-Problem bezeichnet.

Die Methode zur Lösung dieses Problems

Methode einschließen

Die aufgerufene Methode.

Diese Methode hat jedes Mal auf die Datenbank zugegriffen und nach den zugehörigen Daten gesucht. Alle Daten werden auf einmal erfasst.

Selbst wenn 10.000 Beiträge vorhanden sind, müssen Sie daher nur einmal auf die Datenbank zugreifen.

n+1.png

Wie im obigen Bild gezeigt, kann es verwendet werden, indem Includes (: verknüpftes Modell) im Verarbeitungsinhalt der Indexaktion festgelegt werden.

Unabhängig davon, wie viele Beiträge beim Auflisten von Tweets usw. hinzugefügt werden, wird die Leistung nicht verringert.

Recommended Posts

[N + 1 Problem]
Unterschätzen Sie das N + 1-Problem nicht!
FizzBuzz Problem
Rubinproblem ⑦
Ruby-Suchproblem
[Ruby] FizzBuzz-Problem
Ruby API Problem
Problem mit der Scanmethode
[Java] Problem Nr. 2
[Java] Problem Nr. 3
Ruby API Problem
[Java] Problem Nr.1
Ruby_work Grundproblem
/ n \ n Docker Java
[Anfänger] Entdecken Sie das N + 1-Problem! Wie benutzt man Bullet?