Ruby on Rails

Performance-Optimierung

Database indexing, Query-Optimierung, Bullet gem, rack-mini-profiler, Nebenläufigkeit/Puma, thread-safety, connection pool

26 Interview-Fragen·
Senior
1

Was ist der Hauptzweck des Hinzufügens eines Index auf einer Datenbankspalte?

Antwort

Ein Index beschleunigt Suchanfragen, indem er eine optimierte Datenstruktur (üblicherweise ein B-tree) erstellt, die das Scannen aller Zeilen der Tabelle vermeidet. Ohne Index führt die Datenbank einen sequential scan durch, der bei großen Tabellen sehr langsam sein kann. Spalten, die häufig in WHERE-Klauseln, ORDER BY oder Joins verwendet werden, sind ideale Kandidaten für die Indexierung.

2

Wie erstellt man einen zusammengesetzten Index auf den Spalten user_id und created_at in einer Rails-Migration?

Antwort

Die Methode add_index akzeptiert ein Array von Spalten, um einen zusammengesetzten Index zu erstellen. Die Reihenfolge der Spalten ist wichtig: Der Index ist effizient für Abfragen, die zuerst nach user_id und dann nach created_at filtern, aber nicht für Abfragen, die nur nach created_at filtern. Ein zusammengesetzter Index ist optimal für Abfragen, die die Spalten von links nach rechts verwenden.

3

Was ist das N+1-Problem im Kontext von ActiveRecord?

Antwort

Das N+1-Problem tritt auf, wenn eine erste Abfrage N Datensätze abruft und dann N zusätzliche Abfragen ausgeführt werden, um die Assoziationen jedes Datensatzes zu laden. Zum Beispiel das Laden von 100 Posts und anschließend 100 einzelne Abfragen für die Autoren. Dieses Muster vervielfacht die Anzahl der Abfragen und verschlechtert die Performance erheblich. Die Lösung besteht darin, includes, preload oder eager_load zu verwenden, um die Assoziationen in einer oder zwei Abfragen zu laden.

4

Welche ActiveRecord-Methode sollte man verwenden, um das N+1-Problem durch vorzeitiges Laden der Assoziationen zu lösen?

5

Welche Rolle spielt das Bullet gem bei der Performance-Optimierung in Rails?

+23 Interview-Fragen

Meistere Ruby on Rails für dein nächstes Interview

Zugang zu allen Fragen, Flashcards, technischen Tests, Code-Review-Übungen und Interview-Simulatoren.

Kostenlos starten