任何人都可以告诉我ORM或查询构建器哪个会更好吗?它有什么好处?
答案 0 :(得分:2)
<强> ORM 强>
Polymorphic Relationships
Query Builder
希望这些足够
答案 1 :(得分:2)
我们使用像Laravel这样的框架来简化我们的工作。在框架概念方面,速度和易于开发比性能更重要。因此,通过使用ORM,它提供了强大的方法来处理数据库,而不需要繁重的mysql知识。在查询构建器的情况下,它提供了以有效方式构建查询的方法。
根据我的经验,有些事情我们用Eloquent不能轻易做到。那么我们需要使用查询构建器来构建直接查询。
所以我认为比较Eloquent和查询构建器并不好。
您可以找到更多详情here。
但我可以给你一些选择一种方法的技巧。
答案 2 :(得分:1)
是的,在某些情况下您是对的。当我们拥有更多数据并且几乎在每个站点中时,数据确实不小。那么最好使用数据库查询而不是雄辩查询。
在雄辩的VS DB的性能问题中,我听说过
要为一个简单的表插入1000行,Eloquent需要1.2秒,在这种情况下,DB Facade仅需要800毫秒(ms)。
那为什么要那么雄辩呢?没必要吗?
答案是-雄辩也是必要的。原因-
要建立更好的关系并在需要联接时使用非常简单的语法查看结果。
口才还适合那些不了解SQL查询的人。
一个MVC框架遵循代码可读性,代码可维护性的规则,您知道这是Eloquent。下面的代码比较。显然,口才更好阅读。
// In Eloquent
$student = App\Student::find($id);
// In DB facade
$student = DB::table('student')->where('id', $id)->first();
最重要的部分是如果我们要更改其他数据库,那么原始查询将使我们非常头疼,在这种情况下,Laravel Eloquent会用一只手解决所有问题。它可以处理不同类型的数据库。
因此,当我们使用Eloquent和When when DB Facades时:
当我们在具有简单CRUD的简单小型记录站点上工作并且那里没有记录时,请在此处使用Eloquent。 当我们处理大量记录时,使用DB Query比使用Eloquent更好。 因此,最后要弄清楚的是-什么时候使用数据库查询,什么时候使用口才查询。
编辑-真实示例
我正在建立大学网站。最多可能包含5,000个 教师和10,000名学生,以及一些通知和文件。那是 最好使用简单的Laravel Eloquent做到这一点,这非常 标准且可读。
现在,我正在制作一个类似Stackoverflow的网站。其中可能包含多个 1,000,0000(1 crore)个帖子以及更多其他东西。我必须选择 那里的传统DB外墙。搜索更快 来自如此多的记录的帖子。
您可以使用Laravel Debugbar(用于检查口才/数据库查询性能/执行时间的流行软件包)检查查询性能
现在由您选择。你想做什么...