yalcin Eloquent, ActiveRecord kullanan bir ORM. Tablodaki her bir satır bir model objesi tarafından temsil ediliyor. Kayıt çekilirken bir satır için komple bir model yaratılıyor. Modelin içerisinde ise bir sürü özellik var ve her bir satır bu özelliklerle birlikte geliyor. Bu modeller de nihai bir Collection ile toplanıyor, sonuç olarak şişkin ve kompleks bir Collection elde ediyorsunuz. O yüzden ne kadar çok kayıt olursa o kadar kaynak tüketimi gerçekleşiyor. Query Builder ise kabaca PDO üzerine inşa edilmiş fluent dediğimiz bir yapı, programsal olarak SQL sorguları oluşturmanızı sağlıyor ama o da masum değil çünkü her ne kadar her bir satır için bir model oluşturmasa da bir Collection objesi oluşturuyor. Yani Eloquent kadar olmasa da yine bir kaynak kullanımında artış söz konusu.
// Zengin kullanım deneyimi, yüksek zaman tasarrufu, kötü performans:
$users = User::all();
// Orta seviye bir kullanım deneyimi ve orta seviye zaman tasarrufu, ortalama bir performans:
$users = DB::table('users')->get();
// Düşük seviye bir kullanım deneyimi, yüksek zaman harcama, yüksek performans:
$users = DB::select('select * from users')
Eğer performans problemi yaşanıyorsa Eloquent kullanırken sadece ihtiyacınız olanları çekmeye özen göstermeniz ve gereksiz ilişkileri yüklememeniz lazım. Builder kullanırken de aynı şekilde sadece ihtiyacınız olanları çekmeye özen göstermeniz lazım. Düşük seviye işlemlerde ise bir şeyleri yapmaya çalışırken çok fazla zaman kaybedeceğinizi ve düzeni kurmada zorlanacağınızı da belirtmekte fayda var, o yüzden emin adımlarla ilermeniz gerekiyor.
Sonuç olarak duruma göre tartıp, karar verip öyle ilerlemeniz gerekiyor. Ayrıca performans çok genel bir konu, bir noktadan bakmamak lazım.