# Prestatie-optimalisatie (Ruby on Rails) > Database indexing, query-optimalisatie, Bullet gem, rack-mini-profiler, concurrency/Puma, thread-safety, connection pool - 26 gespreksvragen - Senior - [Gespreksvragen: Ruby on Rails](https://sharpskill.dev/nl/technologies/ruby-on-rails/sollicitatievragen.md) ## 1. 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. ## 2. 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. ## 3. 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. ## Nog 23 vragen beschikbaar - 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? Meld je gratis aan: https://sharpskill.dev/nl/login ## Andere Ruby on Rails-sollicitatieonderwerpen - [Ruby-basis](https://sharpskill.dev/nl/technologies/ruby-on-rails/sollicitatievragen/ruby-basics.md): 25 vragen, Junior - [Objectgeoriënteerd programmeren in Ruby](https://sharpskill.dev/nl/technologies/ruby-on-rails/sollicitatievragen/ruby-oop.md): 20 vragen, Junior - [Rails-grondbeginselen](https://sharpskill.dev/nl/technologies/ruby-on-rails/sollicitatievragen/rails-fundamentals.md): 18 vragen, Junior - [Routing & Controllers](https://sharpskill.dev/nl/technologies/ruby-on-rails/sollicitatievragen/routing-controllers.md): 22 vragen, Junior - [ActiveRecord-basis](https://sharpskill.dev/nl/technologies/ruby-on-rails/sollicitatievragen/active-record-basics.md): 25 vragen, Junior - [Views & ERB-templates](https://sharpskill.dev/nl/technologies/ruby-on-rails/sollicitatievragen/views-erb-templates.md): 20 vragen, Junior - [ActiveRecord-associaties](https://sharpskill.dev/nl/technologies/ruby-on-rails/sollicitatievragen/active-record-associations.md): 24 vragen, Mid-Level - [Geavanceerde ActiveRecord-query's](https://sharpskill.dev/nl/technologies/ruby-on-rails/sollicitatievragen/active-record-queries.md): 28 vragen, Mid-Level - [Rails-formulieren](https://sharpskill.dev/nl/technologies/ruby-on-rails/sollicitatievragen/rails-forms.md): 20 vragen, Mid-Level - [Authenticatie & autorisatie](https://sharpskill.dev/nl/technologies/ruby-on-rails/sollicitatievragen/authentication-authorization.md): 22 vragen, Mid-Level - [Moderne Asset Pipeline & frontend](https://sharpskill.dev/nl/technologies/ruby-on-rails/sollicitatievragen/rails-asset-pipeline.md): 18 vragen, Mid-Level - [Rails API-modus](https://sharpskill.dev/nl/technologies/ruby-on-rails/sollicitatievragen/rails-api-mode.md): 20 vragen, Mid-Level - [Testen met RSpec](https://sharpskill.dev/nl/technologies/ruby-on-rails/sollicitatievragen/rails-testing-rspec.md): 24 vragen, Mid-Level - [ActiveJob & Background Jobs](https://sharpskill.dev/nl/technologies/ruby-on-rails/sollicitatievragen/active-job-background-jobs.md): 20 vragen, Mid-Level - [ActionCable & WebSockets](https://sharpskill.dev/nl/technologies/ruby-on-rails/sollicitatievragen/action-cable-websockets.md): 18 vragen, Mid-Level - [ActionMailer](https://sharpskill.dev/nl/technologies/ruby-on-rails/sollicitatievragen/action-mailer.md): 18 vragen, Mid-Level - [ActiveStorage](https://sharpskill.dev/nl/technologies/ruby-on-rails/sollicitatievragen/active-storage.md): 20 vragen, Mid-Level - [Cachingstrategieën](https://sharpskill.dev/nl/technologies/ruby-on-rails/sollicitatievragen/caching-strategies.md): 20 vragen, Mid-Level - [Geavanceerde migraties](https://sharpskill.dev/nl/technologies/ruby-on-rails/sollicitatievragen/database-migrations-advanced.md): 20 vragen, Mid-Level - [Rails Engines & modulaire apps](https://sharpskill.dev/nl/technologies/ruby-on-rails/sollicitatievragen/rails-engines-modular-apps.md): 18 vragen, Senior - [Rails Design Patterns](https://sharpskill.dev/nl/technologies/ruby-on-rails/sollicitatievragen/rails-design-patterns.md): 22 vragen, Senior - [Ruby-metaprogrammering](https://sharpskill.dev/nl/technologies/ruby-on-rails/sollicitatievragen/ruby-metaprogramming.md): 20 vragen, Senior - [Rails-beveiliging](https://sharpskill.dev/nl/technologies/ruby-on-rails/sollicitatievragen/rails-security.md): 22 vragen, Senior - [GraphQL met Rails](https://sharpskill.dev/nl/technologies/ruby-on-rails/sollicitatievragen/graphql-rails.md): 20 vragen, Senior - [Deployment & Productie](https://sharpskill.dev/nl/technologies/ruby-on-rails/sollicitatievragen/rails-deployment-production.md): 20 vragen, Senior - [Monitoring & Logging](https://sharpskill.dev/nl/technologies/ruby-on-rails/sollicitatievragen/monitoring-logging.md): 20 vragen, Senior - [Rails-upgradestrategieën](https://sharpskill.dev/nl/technologies/ruby-on-rails/sollicitatievragen/rails-upgrade-strategies.md): 18 vragen, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/nl/technologies/ruby-on-rails/sollicitatievragen/performance-optimization