Oui, dans certains cas, vous avez raison. Quand nous aurons plus de données et presque dans chaque site, les données ne sont pas petits vraiment. Alors il est préférable d'utiliser DB Query plutôt qu'Eloquent Query. .
Dans un problème de performance d'Eloquent VS DB J'ai entendu ça,
Pour insérer 1000 lignes d'une table simple, Eloquent prend 1,2 secondes. dans ce cas, les façades DB ne prennent que 800 mili secondes(ms).
Alors pourquoi être éloquent ? Cela n'est-il pas nécessaire ?
La réponse est - L'éloquence est également nécessaire. Cause :
A créer une meilleure relation et obtenir les résultats en vue avec une syntaxe si simple, lorsqu'il faut joindre.
Eloquent est aussi pour ceux qui n'ont pas une grande connaissance des requêtes SQL. .
Un cadre MVC suivre les règles de lisibilité et de maintenabilité du code. et ce qu'est Eloquent, vous le savez. Une comparaison de codes ci-dessous. Évidemment, Eloquent est plus facile à lire.
// In Eloquent
$student = App\Student::find($id);
// In DB facade
$student = DB::table('student')->where('id', $id)->first();
La partie la plus importante est si nous voulez changer d'autre base de données Dans ce cas, Laravel Eloquent résoudra tous les problèmes d'une seule main. Il peut gérer différents types de bases de données.
Ainsi, lorsque nous utilisons les façades d'Eloquent et When DB :
- Lorsque nous travaillons sur un site simple et de petite taille avec des CRUD simples et que les enregistrements ne sont pas factuels, nous utilisons Eloquent. ne sont pas des faits, alors on utilise Eloquent.
- Lorsque nous travaillons sur un grand nombre d'enregistrements, il est préférable d'utiliser DB Query plutôt qu'Eloquent.
Donc, finalement, il est clair que - quand nous utiliserons Database Query et quand nous utiliserons Eloquent Query.
Editer - Exemple concret
- Je fais un Site de l'université . Qui peut contenir au maximum
5,000 teachers and 10,000 students and some notices and files
. Il est alors préférable de le faire avec le simple Laravel Eloquent qui est très standard et lisible.
- Maintenant, je fais un site comme Stackoverflow . Qui peut contenir plus de
1,000,0000 (1 crore) posts and many more things
. Je dois choisir les façades conventionnelles de la DB. C'est plus rapide pour rechercher les messages à partir de tant d'enregistrements.
Vous pouvez vérifier les performances de vos requêtes en utilisant Barre de débogage Laravel (Un paquet populaire pour vérifier les performances/temps d'exécution des requêtes Eloquent/Database)
Maintenant, c'est à vous de choisir. Ce que vous voulez faire...
Vous pouvez consulter ici une comparaison complète, code par code, des performances, de la consommation de mémoire et de la qualité du code de ces produits. https://devsenv.com/tutorials/laravel-eloquent-vs-db-query-builder-performance-and-other-statistics
24 votes
Ne comparez pas des pommes et des oranges. Eloquent est un ORM, ce qui signifie qu'il peut gérer automatiquement les relations de vos modèles pour vous. Vous pouvez récupérer des modèles liés sans écrire de requêtes complexes. Vous pouvez même récupérer des informations de base de données sans aucune connaissance des bases de données. De plus, Eloquent dispose d'une tonne de fonctionnalités supplémentaires qui font défaut au générateur de requêtes, telles que la lisibilité, les accesseurs, les mutateurs, la conversion JSON/Array, le masquage des attributs sensibles, les timestams automatiques, le casting automatique des attributs, les sofdeletes, etc...
96 votes
Les pommes produisent du jus de pomme, les oranges du jus d'orange. Mais malheureusement
Eloquent
yQuery Builder
Les deux produisent la même chose,data
dedatabase
. C'est peut-être pour cela qu'il compare ces deux-là.4 votes
@JaviStolz si vous aviez dit "sans connaître SQL" vous auriez eu raison. Mais "Vous pouvez même récupérer les informations de la base de données sans aucune connaissance de la base de données" n'est pas possible. Eloquent exige que vous connaissiez la structure de votre base de données, ce que sont les clés étrangères et comment elles fonctionnent, et comment naviguer dans la structure. Seules les requêtes les plus simples ne requièrent pas de connaissance de la base de données, et la plupart des applications nécessiteront des requêtes très complexes.
0 votes
Bien que les pommes donnent du jus de pomme et les oranges du jus d'orange, les deux sont du jus. Eloquent renvoie des Collections, qui sont des données enveloppées dans des aides, qui rendent la logique commerciale plus lisible. Query Builder est une pièce utilisée par Eloquent. Eloquent est un composant dans un paradigme de logique d'entreprise qui vous permet de faire des ajustements et de filtrer les données à chaque partie du flux en utilisant Closure, afin que vos données soient lisibles.
$object->filter($something_we_just_calculated)
au fur et à mesure qu'il travaille dans un arbre de décision. Vous pouvez penser à Eloquent comme à JQuery0 votes
Ton exemple de la pomme et de l'orange n'est pas valide, ce qui a été souligné à plusieurs reprises. Mais comment avez-vous réussi à éditer votre commentaire 3 fois et avoir toujours autant d'erreurs dedans ? @JaviStolz