Setalh pada artikel sebelumnya saya telah membahas tentang perbedaan Antara Query Builder VS Eloquent Pada Laravel, untuk saat ini akan saya lanjutkan dengan membahas Perbandingan Antara Query Builder VS Eloquent Pada Laravel. Di artikel ini saya akan membandingan dengan tiga variable yaitu:
1. Performa/speed
2. Perbandingan syntax
3. Fungsionalitas
Mari kita mulai membahas yang pertama
1. Performa/speed
OK, pada kasus ini saya ingin menginsert data sebanyak 1000 data dalam table ‘country’. Sekarang kita uji coba performa keduanya
|
1 2 3 4 5 6 7 8 9 10 11 |
<?php Route::get("test",function(){ for($i=0;$i<1000;$i++){ $t=new Country(); $t->label=$i." Row"; $t->save(); } }); ?> |
Eloquent ORM (Execution time : 1.41 s, Queries Executed : 1000)
|
1 2 3 4 5 6 7 |
<?php Route::get("test",function(){ for($i=0;$i<1000;$i++){ DB::table("countries")->insert(["label"=>$i." Row"]); } }); ?> |
Query Builder (Execution time : 938 ms, Queries Executed : 1000)
2. Syntax
Di sini saya akan membandingkan syntak antara keduanya
Eloquent :
|
1 2 3 |
<?php $post = Post::find($id); ?> |
Query builder :
|
1 2 3 |
<?php $post = DB::table('posts')->where('id',$id)->get(); ?> |
Di atas dapat di lihat bahwa eloquent secara sintak lebih sederhana di bandingakan dengan query builder
3. Fungsionalitas
Sebenarnya Eloquent ORM adalah extensi dari Query Builder, jadi kita bisa menggunakan syntax Query Builder didalam Eloquent. Sebaliknya, kita tidak bisa mengakses syntax dari Eloquent jika kita menggunakan Query Builder. Contohnya dari Eloquent adalah sebagai berikut :
|
1 2 3 |
<?php Post::where('id',$id)->with('comments','tags','categories')->get(); ?> |
Dari pengujian di atas dapat di simpulkan bahwa jika di lihat dari performa maka query builder akan sedikit lebih cepat eksekusinya di bandingakan dengan eloquent, tetapi secara sintak eloquent akan lebih sederhana sehingga tidak mengotori baris code anda dan secara fungsionalitas eloquent lebih fleksible di bandingakan dengan query builder. Tepai semua itu tergantung dari kebutuhan anda karena ke dua cara ini bisa di terapkan di dalam satu project yang anda kerjakan jadi pilihlah sesuai kebutuhan karena kedua cara tersebut memiliki plus minus nya masing-masing.