Ruby on Rails

Performans Optimizasyonu

Database indexing, sorgu optimizasyonu, Bullet gem, rack-mini-profiler, eşzamanlılık/Puma, thread-safety, connection pool

26 mülakat soruları·
Senior
1

Bir veritabanı sütununa index eklemenin temel amacı nedir?

Cevap

Bir index, tablodaki tüm satırları taramayı önleyen optimize edilmiş bir veri yapısı (genellikle bir B-tree) oluşturarak arama sorgularını hızlandırır. Index olmadan veritabanı, büyük tablolarda çok yavaş olabilen bir sequential scan gerçekleştirir. WHERE koşullarında, ORDER BY veya join'lerde sıkça kullanılan sütunlar, indeksleme için ideal adaylardır.

2

Rails migration'ında user_id ve created_at sütunları üzerinde bileşik bir index nasıl oluşturulur?

Cevap

add_index metodu, bir bileşik index oluşturmak için bir sütun dizisi kabul eder. Sütun sırası önemlidir: index, önce user_id'ye, ardından created_at'a göre filtreleyen sorgular için verimli olacak, ancak yalnızca created_at'a göre filtreleyen sorgular için olmayacaktır. Bileşik bir index, sütunları soldan sağa kullanan sorgular için en uygun olanıdır.

3

ActiveRecord bağlamında N+1 problemi nedir?

Cevap

N+1 problemi, ilk bir sorgunun N kayıt getirmesi, ardından her kaydın ilişkilerini yüklemek için N ek sorgunun çalıştırılmasıyla ortaya çıkar. Örneğin, 100 posts yüklemek ve ardından yazarlar için 100 ayrı sorgu yapmak. Bu desen sorgu sayısını katlar ve performansı ciddi şekilde düşürür. Çözüm, ilişkileri bir veya iki sorguda yüklemek için includes, preload veya eager_load kullanmaktır.

4

İlişkileri önceden yükleyerek N+1 problemini çözmek için hangi ActiveRecord metodu kullanılır?

5

Rails performans optimizasyonunda Bullet gem'inin rolü nedir?

+23 mülakat soruları

Bir sonraki mülakatın için Ruby on Rails'de uzmanlaş

Tüm sorulara, flashcards'a, teknik testlere, code review alıştırmalarına ve mülakat simülatörlerine eriş.

Ücretsiz başla