
Otimização de desempenho
Database indexing, otimização de consultas, gem Bullet, rack-mini-profiler, concorrência/Puma, thread-safety, connection pool
1Qual é o objetivo principal de adicionar um index em uma coluna do banco de dados?
Qual é o objetivo principal de adicionar um index em uma coluna do banco de dados?
Resposta
Um index acelera as consultas de busca ao criar uma estrutura de dados otimizada (geralmente um B-tree) que evita escanear todas as linhas da tabela. Sem index, o banco de dados realiza um sequential scan que pode ser muito lento em tabelas grandes. Colunas usadas com frequência em cláusulas WHERE, ORDER BY ou joins são candidatas ideais para indexação.
2Como criar um index composto nas colunas user_id e created_at em uma migration do Rails?
Como criar um index composto nas colunas user_id e created_at em uma migration do Rails?
Resposta
O método add_index aceita um array de colunas para criar um index composto. A ordem das colunas importa: o index será eficiente para consultas que filtram primeiro por user_id e depois por created_at, mas não para consultas que filtram apenas por created_at. Um index composto é ideal para consultas que usam as colunas da esquerda para a direita.
3O que é o problema N+1 no contexto do ActiveRecord?
O que é o problema N+1 no contexto do ActiveRecord?
Resposta
O problema N+1 ocorre quando uma consulta inicial recupera N registros e, em seguida, N consultas adicionais são executadas para carregar as associações de cada registro. Por exemplo, carregar 100 posts e depois fazer 100 consultas individuais para os autores. Esse padrão multiplica o número de consultas e degrada gravemente o desempenho. A solução é usar includes, preload ou eager_load para carregar as associações em uma ou duas consultas.
Qual método do ActiveRecord usar para resolver o problema N+1 carregando as associações antecipadamente?
Qual é o papel do gem Bullet na otimização de desempenho do Rails?
+23 perguntas de entrevista
Outros temas de entrevista Ruby on Rails
Fundamentos de Ruby
Programação orientada a objetos em Ruby
Fundamentos do Rails
Routing & Controllers
Fundamentos do ActiveRecord
Views e templates ERB
Associações do ActiveRecord
Consultas avançadas do ActiveRecord
Formulários Rails
Autenticação e Autorização
Asset Pipeline moderno e frontend
Modo API do Rails
Testes com RSpec
ActiveJob & Background Jobs
ActionCable & WebSockets
ActionMailer
ActiveStorage
Estratégias de caching
Migrações avançadas
Rails Engines e apps modulares
Padrões de projeto no Rails
Metaprogramação em Ruby
Segurança no Rails
GraphQL com Rails
Implantação e Produção
Monitoring & Logging
Estratégias de upgrade do Rails
Domine Ruby on Rails para sua proxima entrevista
Acesse todas as perguntas, flashcards, testes tecnicos, exercicios de code review e simuladores de entrevista.
Comece gratis