# Оптимізація продуктивності (Ruby on Rails) > Database indexing, оптимізація запитів, gem Bullet, rack-mini-profiler, конкурентність/Puma, thread-safety, connection pool - 26 питань зі співбесід - Senior - [Питання зі співбесід: Ruby on Rails](https://sharpskill.dev/uk/technologies/ruby-on-rails/pytannia-spivbesidy.md) ## 1. Яка основна мета додавання index до стовпця бази даних? **Відповідь** Index прискорює пошукові запити, створюючи оптимізовану структуру даних (зазвичай B-tree), яка дозволяє уникнути сканування всіх рядків таблиці. Без index база даних виконує sequential scan, який може бути дуже повільним на великих таблицях. Стовпці, що часто використовуються в умовах WHERE, ORDER BY або з'єднаннях, є ідеальними кандидатами для індексування. ## 2. Як створити складений index на стовпцях user_id та created_at у міграції Rails? **Відповідь** Метод add_index приймає масив стовпців для створення складеного index. Порядок стовпців має значення: index буде ефективним для запитів, що фільтрують спочатку за user_id, а потім за created_at, але не для запитів, що фільтрують лише за created_at. Складений index є оптимальним для запитів, що використовують стовпці зліва направо. ## 3. Що таке проблема N+1 у контексті ActiveRecord? **Відповідь** Проблема N+1 виникає, коли початковий запит отримує N записів, а потім виконується N додаткових запитів для завантаження асоціацій кожного запису. Наприклад, завантаження 100 posts, а потім виконання 100 окремих запитів для авторів. Цей патерн примножує кількість запитів і суттєво погіршує продуктивність. Рішення полягає у використанні includes, preload або eager_load для завантаження асоціацій в одному чи двох запитах. ## Ще 23 доступних питань - Який метод ActiveRecord використовувати для вирішення проблеми N+1 шляхом попереднього завантаження асоціацій? - Яка роль gem Bullet в оптимізації продуктивності Rails? Зареєструйся безкоштовно: https://sharpskill.dev/uk/login ## Інші теми співбесід Ruby on Rails - [Основи Ruby](https://sharpskill.dev/uk/technologies/ruby-on-rails/pytannia-spivbesidy/ruby-basics.md): 25 запитань, Junior - [Об'єктно-орієнтоване програмування в Ruby](https://sharpskill.dev/uk/technologies/ruby-on-rails/pytannia-spivbesidy/ruby-oop.md): 20 запитань, Junior - [Основи Rails](https://sharpskill.dev/uk/technologies/ruby-on-rails/pytannia-spivbesidy/rails-fundamentals.md): 18 запитань, Junior - [Routing & Controllers](https://sharpskill.dev/uk/technologies/ruby-on-rails/pytannia-spivbesidy/routing-controllers.md): 22 запитань, Junior - [Основи ActiveRecord](https://sharpskill.dev/uk/technologies/ruby-on-rails/pytannia-spivbesidy/active-record-basics.md): 25 запитань, Junior - [Views та шаблони ERB](https://sharpskill.dev/uk/technologies/ruby-on-rails/pytannia-spivbesidy/views-erb-templates.md): 20 запитань, Junior - [Асоціації ActiveRecord](https://sharpskill.dev/uk/technologies/ruby-on-rails/pytannia-spivbesidy/active-record-associations.md): 24 запитань, Mid-Level - [Розширені запити ActiveRecord](https://sharpskill.dev/uk/technologies/ruby-on-rails/pytannia-spivbesidy/active-record-queries.md): 28 запитань, Mid-Level - [Форми Rails](https://sharpskill.dev/uk/technologies/ruby-on-rails/pytannia-spivbesidy/rails-forms.md): 20 запитань, Mid-Level - [Автентифікація та авторизація](https://sharpskill.dev/uk/technologies/ruby-on-rails/pytannia-spivbesidy/authentication-authorization.md): 22 запитань, Mid-Level - [Сучасний Asset Pipeline та frontend](https://sharpskill.dev/uk/technologies/ruby-on-rails/pytannia-spivbesidy/rails-asset-pipeline.md): 18 запитань, Mid-Level - [Режим API Rails](https://sharpskill.dev/uk/technologies/ruby-on-rails/pytannia-spivbesidy/rails-api-mode.md): 20 запитань, Mid-Level - [Тестування з RSpec](https://sharpskill.dev/uk/technologies/ruby-on-rails/pytannia-spivbesidy/rails-testing-rspec.md): 24 запитань, Mid-Level - [ActiveJob & Background Jobs](https://sharpskill.dev/uk/technologies/ruby-on-rails/pytannia-spivbesidy/active-job-background-jobs.md): 20 запитань, Mid-Level - [ActionCable & WebSockets](https://sharpskill.dev/uk/technologies/ruby-on-rails/pytannia-spivbesidy/action-cable-websockets.md): 18 запитань, Mid-Level - [ActionMailer](https://sharpskill.dev/uk/technologies/ruby-on-rails/pytannia-spivbesidy/action-mailer.md): 18 запитань, Mid-Level - [ActiveStorage](https://sharpskill.dev/uk/technologies/ruby-on-rails/pytannia-spivbesidy/active-storage.md): 20 запитань, Mid-Level - [Стратегії кешування](https://sharpskill.dev/uk/technologies/ruby-on-rails/pytannia-spivbesidy/caching-strategies.md): 20 запитань, Mid-Level - [Розширені міграції](https://sharpskill.dev/uk/technologies/ruby-on-rails/pytannia-spivbesidy/database-migrations-advanced.md): 20 запитань, Mid-Level - [Rails Engines та модульні застосунки](https://sharpskill.dev/uk/technologies/ruby-on-rails/pytannia-spivbesidy/rails-engines-modular-apps.md): 18 запитань, Senior - [Патерни проєктування Rails](https://sharpskill.dev/uk/technologies/ruby-on-rails/pytannia-spivbesidy/rails-design-patterns.md): 22 запитань, Senior - [Метапрограмування в Ruby](https://sharpskill.dev/uk/technologies/ruby-on-rails/pytannia-spivbesidy/ruby-metaprogramming.md): 20 запитань, Senior - [Безпека Rails](https://sharpskill.dev/uk/technologies/ruby-on-rails/pytannia-spivbesidy/rails-security.md): 22 запитань, Senior - [GraphQL із Rails](https://sharpskill.dev/uk/technologies/ruby-on-rails/pytannia-spivbesidy/graphql-rails.md): 20 запитань, Senior - [Розгортання та Продакшн](https://sharpskill.dev/uk/technologies/ruby-on-rails/pytannia-spivbesidy/rails-deployment-production.md): 20 запитань, Senior - [Monitoring & Logging](https://sharpskill.dev/uk/technologies/ruby-on-rails/pytannia-spivbesidy/monitoring-logging.md): 20 запитань, Senior - [Стратегії оновлення Rails](https://sharpskill.dev/uk/technologies/ruby-on-rails/pytannia-spivbesidy/rails-upgrade-strategies.md): 18 запитань, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/uk/technologies/ruby-on-rails/pytannia-spivbesidy/performance-optimization