
Prestatie-optimalisatie
Database indexing, query-optimalisatie, Bullet gem, rack-mini-profiler, concurrency/Puma, thread-safety, connection pool
1Wat is het belangrijkste doel van het toevoegen van een index op een databasekolom?
Wat is het belangrijkste doel van het toevoegen van een index op een databasekolom?
Antwoord
Een index versnelt zoekopdrachten door een geoptimaliseerde datastructuur (meestal een B-tree) te creëren die voorkomt dat alle rijen in de tabel worden gescand. Zonder index voert de database een sequential scan uit die op grote tabellen erg traag kan zijn. Kolommen die vaak worden gebruikt in WHERE-clausules, ORDER BY of joins zijn ideale kandidaten voor indexering.
2Hoe maak je een samengestelde index op de kolommen user_id en created_at in een Rails-migratie?
Hoe maak je een samengestelde index op de kolommen user_id en created_at in een Rails-migratie?
Antwoord
De methode add_index accepteert een array van kolommen om een samengestelde index te maken. De volgorde van de kolommen is belangrijk: de index is efficiënt voor query's die eerst op user_id en daarna op created_at filteren, maar niet voor query's die alleen op created_at filteren. Een samengestelde index is optimaal voor query's die de kolommen van links naar rechts gebruiken.
3Wat is het N+1-probleem in de context van ActiveRecord?
Wat is het N+1-probleem in de context van ActiveRecord?
Antwoord
Het N+1-probleem treedt op wanneer een eerste query N records ophaalt en vervolgens N extra query's worden uitgevoerd om de associaties van elk record te laden. Bijvoorbeeld 100 posts laden en vervolgens 100 afzonderlijke query's voor de auteurs uitvoeren. Dit patroon vermenigvuldigt het aantal query's en verslechtert de prestaties aanzienlijk. De oplossing is om includes, preload of eager_load te gebruiken om de associaties in een of twee query's te laden.
Welke ActiveRecord-methode gebruik je om het N+1-probleem op te lossen door associaties vooraf te laden?
Wat is de rol van de Bullet gem bij prestatie-optimalisatie in Rails?
+23 gespreksvragen
Andere Ruby on Rails-sollicitatieonderwerpen
Ruby-basis
Objectgeoriënteerd programmeren in Ruby
Rails-grondbeginselen
Routing & Controllers
ActiveRecord-basis
Views & ERB-templates
ActiveRecord-associaties
Geavanceerde ActiveRecord-query's
Rails-formulieren
Authenticatie & autorisatie
Moderne Asset Pipeline & frontend
Rails API-modus
Testen met RSpec
ActiveJob & Background Jobs
ActionCable & WebSockets
ActionMailer
ActiveStorage
Cachingstrategieën
Geavanceerde migraties
Rails Engines & modulaire apps
Rails Design Patterns
Ruby-metaprogrammering
Rails-beveiliging
GraphQL met Rails
Deployment & Productie
Monitoring & Logging
Rails-upgradestrategieën
Beheers Ruby on Rails voor je volgende gesprek
Krijg toegang tot alle vragen, flashcards, technische tests, code review-oefeningen en gespreksimulatoren.
Begin gratis