Ruby on Rails

Optimasi Performa

Database indexing, optimasi query, gem Bullet, rack-mini-profiler, konkurensi/Puma, thread-safety, connection pool

26 pertanyaan wawancara·
Senior
1

Apa tujuan utama menambahkan index pada kolom database?

Jawaban

Sebuah index mempercepat query pencarian dengan membuat struktur data yang dioptimalkan (biasanya B-tree) yang menghindari pemindaian semua baris dalam tabel. Tanpa index, database melakukan sequential scan yang bisa sangat lambat pada tabel besar. Kolom yang sering digunakan dalam klausa WHERE, ORDER BY atau join adalah kandidat ideal untuk pengindeksan.

2

Bagaimana cara membuat index komposit pada kolom user_id dan created_at dalam migration Rails?

Jawaban

Metode add_index menerima sebuah array kolom untuk membuat index komposit. Urutan kolom penting: index akan efisien untuk query yang memfilter pertama pada user_id, lalu created_at, tetapi tidak untuk query yang hanya memfilter pada created_at. Index komposit optimal untuk query yang menggunakan kolom dari kiri ke kanan.

3

Apa itu masalah N+1 dalam konteks ActiveRecord?

Jawaban

Masalah N+1 terjadi ketika sebuah query awal mengambil N record, lalu N query tambahan dijalankan untuk memuat asosiasi setiap record. Misalnya, memuat 100 posts lalu membuat 100 query individual untuk para penulis. Pola ini melipatgandakan jumlah query dan menurunkan performa secara signifikan. Solusinya adalah menggunakan includes, preload atau eager_load untuk memuat asosiasi dalam satu atau dua query.

4

Metode ActiveRecord mana yang digunakan untuk menyelesaikan masalah N+1 dengan memuat asosiasi terlebih dahulu?

5

Apa peran gem Bullet dalam optimasi performa Rails?

+23 pertanyaan wawancara

Kuasai Ruby on Rails untuk wawancara berikutnya

Akses semua pertanyaan, flashcards, tes teknis, latihan code review dan simulator wawancara.

Mulai gratis