Masalah N+1 Query

  Рет қаралды 17,083

Programmer Zaman Now

Programmer Zaman Now

Күн бұрын

Пікірлер: 69
@Nicholas-n4f
@Nicholas-n4f 9 күн бұрын
mantap pak, smlm saya baru belajar laravel eloquent, trs disebutin masalah N+1 query, hri ini lgsng ada video pembahasannya, untung sblm-sblmnya saya lgsng join, jadi ga pernah kena trouble ini😂
@octarapribadi
@octarapribadi 6 күн бұрын
menurut saya, query sekecil apapun pantang dimasukan dalam loop dengan kompleksitas n. maybe dalam bbrp kasus tertentu masih diperbolehkan jika jumlah loopnya fix, walaupun belum pernah dapat problem tersebut.
@ButaNgamuk
@ButaNgamuk 6 күн бұрын
Sekedar berbagi. Kalo dalam ORM N+1 itu fitur, kalo gak pake ORM itu masalah skill SQL. Fitur ORM ini jadi problem kalo salah pakenya. Biasa terjadi kalo pake relasi tipe XToMany yang sebenernya bisa diganti dengan Unidirectional XToOne. Jika memakai tipe relasi XToOne, secara default ORM akan otomatis pake JOIN query. Di sisi lain seringkali requirements itu tidak memperhatikan performance. Sebagai contoh, pada kasus layar kursus tadi kita bisa memilih untuk menghilangkan nama trainer dan fokus ke atribute kursus seperti Nama, Detail, Durasi, dll. Karena pada umumnya orang akan tertarik dengan kursus bukan karena trainernya (fokus terhadap subjek Kursus). Detail Trainer bisa ditampilkan pada layar "Detail Kursus" dimana bisa saja selain trainer ditampilkan siapa saja peserta kursus tadi. TIPS: Sebelum kamu menggunakan tipe relasi XToMany pikir dulu apakah bisa diganti dengan XToOne?
@coinima
@coinima 6 күн бұрын
Alhamdulillah dapat manfaat setelah scroll Facebook, makasih pak Eko
@jeffryansyahputra3765
@jeffryansyahputra3765 7 күн бұрын
pake join ... sekali jalan aja query nya.. 😁
@babygold_id
@babygold_id 9 күн бұрын
Mantap pak, terimakasih banyak, jadi paham cara menjelaskan dan penamaannya. Di kerjaan saya (SAP - ABAP) yang hampir full query SQL, join & in query menjadi hal yang harus diberikan perhatian khusus 😂
@tehkotak7863
@tehkotak7863 6 күн бұрын
@@babygold_id gimana biar bisa kerja di bidang SAP ya bang?
@sugarprogrammer
@sugarprogrammer 6 күн бұрын
@@babygold_id info pak web atau kursus buat belajar SAP ABAP?🙏
@dickiandrea894
@dickiandrea894 7 сағат бұрын
Keren Pak, pegang apa kalau boleh tahu Pak?
@RezaPrayoga236
@RezaPrayoga236 7 күн бұрын
saya lebih prefer join table biar satu round trip request ke database.
@soktahu2459
@soktahu2459 5 күн бұрын
tergantung jumlah data dan apakah aplikasinya concern ke memory usage atau tidak. Kalau join akan cenderung consume memory lebih banyak karena ada banyak data yg harus di hold di memory, padahal datanya sama hanya berulang.
@fntasticHijack
@fntasticHijack 4 күн бұрын
Teknik kedua akan lebih mudah diambil kalau output nya menggunakan resolver seperti gql atau digunakan untuk paging by parent. Meskipun paging by parent akan lebih mudah pakai sub query sih
@fahruroji916
@fahruroji916 7 күн бұрын
Mantap pak, materinya daging semua
@haixirtcrack3118
@haixirtcrack3118 7 күн бұрын
Baru tau dan untung saja selalu pake join. Tinggal coba2 nerapin in query aja sih ini.
@TiTechChannel
@TiTechChannel 3 күн бұрын
Lebih suka pake teknik CTE kalau untuk query yang butuh join ke beberapa table
@katomegumin7443
@katomegumin7443 5 күн бұрын
waduh" bang tolong di bantu, abang kan educator nih, mungkin ketika bikin video edukasi tentang query di banntu me wanti" muritnya bahwa jangan pernah query SELECT * apa pun situasinya. Karena membuat good habits itu lebih mudah dari pada menyembuhkan bad habits, hanya query kolom yang kalian butuh ya teman" apalagi kalo sudah main Join table, karena bukan hanya berpengaruh terhadap performa query teman" karena kemungkinan banyak data yang redundant, tapi juga tidak baik untuk keamanan sistem karena bisa saja data sensitif ikut ter query, meskipun table isinya cuma 2=3 kolom dan datanya tidak senitif tetap query nama kolomnya langsung ya, untuk menimbulkan kebiasaan yang baik.
@anangardhiansyah7402
@anangardhiansyah7402 5 күн бұрын
Punten kang, amatiran pengen tanya, gimana kalo ditable itu dibikin colom trainers relasi ke table lain??, jadi querynya ke table courses aja
@pawrfecto
@pawrfecto Күн бұрын
kalo masih 1 db saya selalu usahakan untuk pake join, tp kalo sudah mainan microservice trus butuh data reference dari service lain, ya pake yg ke 2, jadi nanti unique ids itu yg di kirim ke service terkait, nanti service terkait handle pakai where in apakah saya masih dijalan yg benar? wkwkw
@carrillorasyadsiswoyo9685
@carrillorasyadsiswoyo9685 3 күн бұрын
pak mau tanya, di laravel controller yang saya miliki itu full query builder apakah berpengaruh untuk kecepatan aplikasi? dan data nya merupakan inject dari db, apakah ada solusi lain?
@kepomPong2816
@kepomPong2816 Күн бұрын
Strukturnya Inquery tapi pake join sama subquery
@imannurizza2334
@imannurizza2334 3 күн бұрын
Mantap pak tapi bagaimana dengan case jika mengharuskan join lebih dari 5 tabel?
@lime_crow
@lime_crow 6 күн бұрын
waduh ilmu mahal nih, dulu saya juga sering bikin kaya gini dan biasanya saya bikin view sih kang. ternyata ini namanya wkwkwkwk
@riskiondrizal7463
@riskiondrizal7463 7 күн бұрын
bagaimana jika kita pakai sub Query ? apakah itu sama saja atau lebih baik ?
@Like_crafthomade
@Like_crafthomade 6 күн бұрын
Itu knp sy ngk pernah mau pkai orm, ribet, logikanya ngk dapet. Kyk ngerjain sesuatu tp ngk pk logika. Jauh lebih nyaman pk sql query, lsg to the point😊
@davidmuhamad3564
@davidmuhamad3564 5 күн бұрын
@@Like_crafthomade ORM lebih cocok buat menerapkan clean code jadi biar kodenya bersih dan mudah di maintance tapi wajib memahami sql dulu sebelum query
@lugasluqmanhakim1933
@lugasluqmanhakim1933 7 күн бұрын
Kalau di laravel pakai "with". Kalau pengalaman saya, kalau tabel joinnya jarang/tidak berubah, contoh: agama, itu querynya saya cache.
@edricgalentino
@edricgalentino 7 күн бұрын
mau tanya kang, maksudnya tabel joinnya jarang teh berarti jarang di join dengan tabel lain atau jarang di insert karna perubahan datanya sedikit?
@lugasluqmanhakim1933
@lugasluqmanhakim1933 7 күн бұрын
@edricgalentino contoh tabel agama. Isinya kan ya cuma2 itu aja, datanya mungkin berubah beberapa tahun sekali.
@SalmanAlfarisi-iy4jt
@SalmanAlfarisi-iy4jt 7 күн бұрын
kalau pake function relasi di laravel kayak belongsto, hasmany dll itu juga ada kemungkinan kena n+1? apa mending pakai join aja buat dapat data relasi antar tabel??
@lugasluqmanhakim1933
@lugasluqmanhakim1933 7 күн бұрын
@@SalmanAlfarisi-iy4jt pakai with di awal. Ntar jadinya di query pakai where In.
@lukmanharun890
@lukmanharun890 6 күн бұрын
jangan lupa bulk insert, sama bulk delete harus di manfaatkan
@mohammadirmansyah9913
@mohammadirmansyah9913 5 күн бұрын
Halah istilah kekinian tho, nek saya ngandalin tableview, kalo berat ya materialized view.
@jidanrahantan4468
@jidanrahantan4468 7 күн бұрын
Kalo di go prepare dlu brrti ?
@MihanFamily
@MihanFamily 6 күн бұрын
pake gorm jg bisa, pake fungsi preload atau joins.. yg preload itu mirip solusi ke-2 yg pake IN query
@RoniStudio
@RoniStudio 6 күн бұрын
Eager loading dan join mungkin bisa jadi jawabannya?
@faizo1246
@faizo1246 6 күн бұрын
terbaik
@nidzammuzakki2938
@nidzammuzakki2938 7 күн бұрын
In query bikin kebanyakan for di aplikasi gak pak eko?
@mochdikiwidianto222
@mochdikiwidianto222 7 күн бұрын
Saya pake left join kak biasanya
@widibaka7058
@widibaka7058 7 күн бұрын
pakai limit 1 gimana pak?
@vaporizel
@vaporizel 4 күн бұрын
Yang jadi masalah begitu ditanya terms ginian ternyata ga tau namany, lantas dianggap interviewer ga bisa solve, padahal sebenarnya bisa
@hafiznugraha3063
@hafiznugraha3063 6 күн бұрын
yang pake laravel eloquent relationships jangan lupa eager load
@Like_crafthomade
@Like_crafthomade 6 күн бұрын
Eloquent bikin pusing...hehe. enakan sql lsg, setuju ngk?😊
@fazlmausoofh6668
@fazlmausoofh6668 6 күн бұрын
@@Like_crafthomade kalau setauku sql query malah gak di sarankan karna rawan, dia query mentah ke sql langsung ga kata eloquent
@SalmanAlfarisi-iy4jt
@SalmanAlfarisi-iy4jt 6 күн бұрын
@@fazlmausoofh6668 terus juga udah otomatis mencegah sql injection juga seingetku, kalau sql biasa ada cara sendiri
@rainfog_mzb
@rainfog_mzb 6 күн бұрын
@@Like_crafthomade Sebenarnya sih tergantung. Yaa, mungkin bisa berbeda sih. Ane pakai Eloquent malah lebih nyaman. Masalah N+1 query tinggal pakai "with()", atur relation di model, dan kelar. Intinya sih, ribet karena belum biasa. Yaa, ane justru belum biasa sql langsung, makanya ane pakai Eloquent.
@Like_crafthomade
@Like_crafthomade 5 күн бұрын
@@rainfog_mzb Kl cuma update atau select table yg gampang2 sih, masih oke. Tp kl select data yg table byk dan kusut, sy nyerah pk eloquent. Ngk sanggup😅
@afdhaliapreto7703
@afdhaliapreto7703 Күн бұрын
kalau saya ditanya n+1, waduh maaf sekali saya sudah melupakannya karena ada prisma 😅
@hafiizheko230
@hafiizheko230 6 күн бұрын
done
@UsniKatama
@UsniKatama 7 күн бұрын
Kalo pake Store Procedure gimana pak?
@sbtsnseth
@sbtsnseth 6 күн бұрын
SP mah cmn fungsi yang isinya query jg, biar lebih mudah manggilnya di codenya dibanding harus ngetik select berkali" dan juga mudah di maintenance.
@herufredi9696
@herufredi9696 6 күн бұрын
@@sbtsnseth SP nya ditambahkan cursor dan di return json atau string dibuat 1 row makin lebih cepat lagi.
@sbtsnseth
@sbtsnseth 6 күн бұрын
@@herufredi9696 terima kasih atas masukannya pak, kalo boleh tau ada refrensinya kayak gmntuh bang biar bisa di pelajari lgi.
@arc8218
@arc8218 7 күн бұрын
Hmmmm baru tau ternyata join dkk ngefix problem n+1 😅 secara gk sadar krn emng sy gk tau n+1, tp emng aneh sih ngeloop sql, gk pernah kepikiran walaupun kepikir pun pasti lnsg tau bikin masalah, masih belum pernah ketemu org yg ngeloop sql gitu buat narik data 😂
@saluran1733
@saluran1733 7 күн бұрын
Ada biasanya bersyarat (if) jadi dilakukan pemeriksaan dulu baru yg memenuhi syarat diquery lagi
@SalmanAlfarisi-iy4jt
@SalmanAlfarisi-iy4jt 6 күн бұрын
@@saluran1733 saya pakai Laravel dan pas mau ambil data relasi antar tabel pakai belongsto dll, itu rawan kena n+1 pas mau nampilin data nya di looping
@coinima
@coinima 6 күн бұрын
Siapa yang pake belongAs ? 😅
@KhairulHidayat
@KhairulHidayat 7 күн бұрын
Kalo relasi one-to-one, prefer yg JOIN query.. kalo one-to-many atau many-to-many baru yg IN query kalo saya 😅
@bumbum9831
@bumbum9831 5 күн бұрын
sebenernya N+1 itu bukan masalah spesifik ke masalah query sih, tapi penulisan algoritma secara dasar, gw cukup kaget karena kayanya jarang banget edukator indonesia yang ngebahas 'Big O' padahal ini fundamental sekali terhadap performa algoritma yang kita tulis, mungkin ini hanya anecdotal evidence aja ya tapi saya lihat jawaban" technical interview di perusahaan" yang saya pernah kerja itu rata" masih bayak yang make algoritma O(n log n) atau bahkann O(n^2) yang mana atau algoritma brute force (yang penting fuctionya Jalan)
Jangan pernah DELETE data di database
26:19
Programmer Zaman Now
Рет қаралды 18 М.
Kerja dapat framework jadul, harus ngapain?
15:23
Programmer Zaman Now
Рет қаралды 17 М.
coco在求救? #小丑 #天使 #shorts
00:29
好人小丑
Рет қаралды 99 МЛН
Why no RONALDO?! 🤔⚽️
00:28
Celine Dept
Рет қаралды 117 МЛН
Mau Kerja Remote di Bidang IT? 🚀  Ini Persiapannya!
16:20
Web Programming UNPAS
Рет қаралды 17 М.
Mudarat Proyek Strategis Nasional | Opini Tempo
5:09
Tempodotco
Рет қаралды 149 М.
Database buat sinkronisasi data
13:32
Programmer Zaman Now
Рет қаралды 13 М.
RAKYAT BISA APA?
1:16:33
Panggil Saya BTP
Рет қаралды 147 М.
AI Meets Quantum: New Google Breakthrough Will Change Everything
15:50
Anastasi In Tech
Рет қаралды 115 М.
Bagaimana Menjadi Backend Developer | PZN Reaction
19:02
Programmer Zaman Now
Рет қаралды 55 М.
Kenapa Semua Orang Salah Menjawab Pertanyaan Ini.
12:46
Fajrul Fx
Рет қаралды 382 М.
Devil's advocate : Ustadz Felix Siaw Membahas Santet
1:07:59
Ferry Irwandi
Рет қаралды 783 М.
Akhirnya ada yang pake Rust di Indonesia | PZN Reaction
26:51
Programmer Zaman Now
Рет қаралды 36 М.
⚡️ BYE! Kenapa Banyak Pengguna Arc Browser Marah?
13:49
Kepoin Tekno
Рет қаралды 41 М.
coco在求救? #小丑 #天使 #shorts
00:29
好人小丑
Рет қаралды 99 МЛН