# Ottimizzazione delle prestazioni (Ruby on Rails) > Database indexing, ottimizzazione delle query, gem Bullet, rack-mini-profiler, concorrenza/Puma, thread-safety, connection pool - 26 domande da colloquio - Senior - [Domande da colloquio: Ruby on Rails](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio.md) ## 1. Qual è lo scopo principale dell'aggiunta di un index su una colonna del database? **Risposta** Un index accelera le query di ricerca creando una struttura dati ottimizzata (di solito un B-tree) che evita di scansionare tutte le righe della tabella. Senza index, il database esegue un sequential scan che può essere molto lento su tabelle di grandi dimensioni. Le colonne usate di frequente nelle clausole WHERE, ORDER BY o nei join sono candidate ideali per l'indicizzazione. ## 2. Come creare un index composito sulle colonne user_id e created_at in una migration Rails? **Risposta** Il metodo add_index accetta un array di colonne per creare un index composito. L'ordine delle colonne è importante: l'index sarà efficiente per le query che filtrano prima su user_id e poi su created_at, ma non per le query che filtrano solo su created_at. Un index composito è ottimale per le query che usano le colonne da sinistra a destra. ## 3. Che cos'è il problema N+1 nel contesto di ActiveRecord? **Risposta** Il problema N+1 si verifica quando una query iniziale recupera N record, dopodiché vengono eseguite N query aggiuntive per caricare le associazioni di ciascun record. Ad esempio, caricare 100 posts e poi effettuare 100 query individuali per gli autori. Questo pattern moltiplica il numero di query e degrada gravemente le prestazioni. La soluzione è usare includes, preload o eager_load per caricare le associazioni in una o due query. ## Altre 23 domande disponibili - Quale metodo ActiveRecord usare per risolvere il problema N+1 caricando le associazioni in anticipo? - Qual è il ruolo del gem Bullet nell'ottimizzazione delle prestazioni di Rails? Registrati gratis: https://sharpskill.dev/it/login ## Altri argomenti di colloquio Ruby on Rails - [Fondamenti di Ruby](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/ruby-basics.md): 25 domande, Junior - [Programmazione orientata agli oggetti in Ruby](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/ruby-oop.md): 20 domande, Junior - [Fondamenti di Rails](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/rails-fundamentals.md): 18 domande, Junior - [Routing & Controllers](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/routing-controllers.md): 22 domande, Junior - [Fondamenti di ActiveRecord](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/active-record-basics.md): 25 domande, Junior - [Views e template ERB](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/views-erb-templates.md): 20 domande, Junior - [Associazioni ActiveRecord](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/active-record-associations.md): 24 domande, Mid-Level - [Query ActiveRecord avanzate](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/active-record-queries.md): 28 domande, Mid-Level - [Form Rails](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/rails-forms.md): 20 domande, Mid-Level - [Autenticazione e autorizzazione](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/authentication-authorization.md): 22 domande, Mid-Level - [Asset Pipeline moderno e frontend](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/rails-asset-pipeline.md): 18 domande, Mid-Level - [Modalità API di Rails](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/rails-api-mode.md): 20 domande, Mid-Level - [Test con RSpec](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/rails-testing-rspec.md): 24 domande, Mid-Level - [ActiveJob & Background Jobs](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/active-job-background-jobs.md): 20 domande, Mid-Level - [ActionCable & WebSockets](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/action-cable-websockets.md): 18 domande, Mid-Level - [ActionMailer](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/action-mailer.md): 18 domande, Mid-Level - [ActiveStorage](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/active-storage.md): 20 domande, Mid-Level - [Strategie di caching](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/caching-strategies.md): 20 domande, Mid-Level - [Migrazioni avanzate](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/database-migrations-advanced.md): 20 domande, Mid-Level - [Rails Engines e app modulari](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/rails-engines-modular-apps.md): 18 domande, Senior - [Design Pattern in Rails](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/rails-design-patterns.md): 22 domande, Senior - [Metaprogrammazione in Ruby](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/ruby-metaprogramming.md): 20 domande, Senior - [Sicurezza in Rails](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/rails-security.md): 22 domande, Senior - [GraphQL con Rails](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/graphql-rails.md): 20 domande, Senior - [Deployment e Produzione](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/rails-deployment-production.md): 20 domande, Senior - [Monitoring & Logging](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/monitoring-logging.md): 20 domande, Senior - [Strategie di upgrade di Rails](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/rails-upgrade-strategies.md): 18 domande, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/performance-optimization