Django

Performa Django

Optimasi query, masalah N+1, indeks database, connection pooling, profiling, monitoring

24 pertanyaan wawancara·
Senior
1

Apa masalah performa yang paling umum terkait query ORM Django?

Jawaban

Masalah N+1 adalah masalah performa paling umum dengan ORM Django. Ini terjadi ketika query awal mengambil N objek, lalu N query tambahan dijalankan untuk mengambil objek terkait. Misalnya, melakukan iterasi atas artikel dan mengakses penulisnya menghasilkan satu query per artikel alih-alih satu query join tunggal.

2

Metode mana yang harus digunakan untuk menyelesaikan masalah N+1 dengan relasi ForeignKey?

Jawaban

select_related() adalah metode yang tepat untuk menyelesaikan masalah N+1 dengan relasi ForeignKey dan OneToOneField. Metode ini melakukan join SQL dan mengambil objek terkait dalam satu query. prefetch_related() digunakan untuk relasi ManyToMany atau relasi terbalik (ForeignKey reverse).

3

Kapan prefetch_related() harus digunakan alih-alih select_related()?

Jawaban

prefetch_related() dirancang untuk relasi ManyToMany dan relasi terbalik (ForeignKey reverse). Berbeda dengan select_related() yang melakukan join SQL, prefetch_related() menjalankan query terpisah dan melakukan join di Python. Ini menghindari duplikasi data yang akan terjadi dengan join SQL pada relasi many-to-many.

4

Bagaimana cara menggunakan Prefetch() untuk menyesuaikan query prefetch_related()?

5

Apa manfaat utama dari menambahkan indeks database pada sebuah field?

+21 pertanyaan wawancara

Kuasai Django untuk wawancara berikutnya

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

Mulai gratis