Szybka pomoc

Ściągawka z porad i trików w Rails

Szybki przewodnik po optymalizacji wydajności w Rails, skrótach w konsoli, zapytaniach do bazy danych i produktywności.

· Opublikowano

Niezbędne skróty ułatwiające pracę, wzorce optymalizacji pamięci i techniki debugowania w codziennej pracy z Rails.

Optymalizacje zapytań i pamięci

1. pluck a map

pluck odpytuje kolumny bazy danych bezpośrednio, bez tworzenia instancji obiektów modeli ActiveRecord w pamięci:

# WOLNE: Tworzy w pamięci 10 000 obiektów User
User.all.map(&:email)

# SZYBKIE: Wybiera tylko kolumnę email jako tablicę ciągów znaków
User.pluck(:email)

2. Przetwarzanie wsadowe za pomocą find_each

Unikaj ładowania olbrzymich tabel do pamięci za jednym razem:

# Ładuje dane partiami po 1 000 rekordów
User.find_each(batch_size: 1000) do |user|
  user.sync_with_crm
end

Skróty zwiększające produktywność w konsoli

# Pobranie wyniku ostatnio wykonanego wyrażenia
user = User.find(1)
_ # Zwraca obiekt user

# Testowanie wydajności i czasu wykonania w konsoli
Benchmark.ms { 1000.times { User.count } }

# Przeładowanie kodu aplikacji bez restartu konsoli
reload!

Aktualizacja znaczników czasu (touch)

Aktualizuj znacznik updated_at modelu nadrzędnego przy zmianie powiązanego rekordu potomnego:

class Comment < ApplicationRecord
  belongs_to :article, touch: true
end

Materiały referencyjne

Powiązane tematy