Ruby on Rails

Optimisation des performances

Database indexing, query optimization, Bullet gem, rack-mini-profiler, concurrency/Puma, thread-safety, connection pool

26 questions d'entretien·
Senior
1

Quel est l'objectif principal de l'ajout d'un index sur une colonne de base de données ?

Réponse

Un index permet d'accélérer les requêtes de recherche en créant une structure de données optimisée (généralement un B-tree) qui évite de scanner toutes les lignes de la table. Sans index, la base de données effectue un sequential scan qui peut être très lent sur les tables volumineuses. Les colonnes fréquemment utilisées dans les clauses WHERE, ORDER BY ou les jointures sont des candidates idéales pour l'indexation.

2

Comment créer un index composite sur les colonnes user_id et created_at dans une migration Rails ?

Réponse

La méthode add_index accepte un tableau de colonnes pour créer un index composite. L'ordre des colonnes est important : l'index sera efficace pour les requêtes filtrant d'abord sur user_id, puis sur created_at, mais pas pour les requêtes filtrant uniquement sur created_at. Un index composite est optimal pour les requêtes qui utilisent les colonnes dans l'ordre de gauche à droite.

3

Qu'est-ce que le problème N+1 dans le contexte d'ActiveRecord ?

Réponse

Le problème N+1 survient lorsqu'une requête initiale récupère N enregistrements, puis N requêtes supplémentaires sont exécutées pour charger les associations de chaque enregistrement. Par exemple, charger 100 posts puis faire 100 requêtes individuelles pour les auteurs. Ce pattern multiplie le nombre de requêtes et dégrade sévèrement les performances. La solution est d'utiliser includes, preload ou eager_load pour charger les associations en une ou deux requêtes.

4

Quelle méthode ActiveRecord utiliser pour résoudre le problème N+1 en chargeant les associations à l'avance ?

5

Quel est le rôle du gem Bullet dans l'optimisation des performances Rails ?

+23 questions d'entretien

Maîtrise Ruby on Rails pour ton prochain entretien

Accède à toutes les questions, flashcards, tests techniques, exercices de code review et simulateurs d'entretien.

Commencer gratuitement