Sql Laravel雄辩的ORM vs查询生成器哪一个更好?
谁能告诉我ORM或查询生成器哪一个更好?它的好处是什么?ORMSql Laravel雄辩的ORM vs查询生成器哪一个更好?,sql,laravel,Sql,Laravel,谁能告诉我ORM或查询生成器哪一个更好?它的好处是什么?ORM 以面向对象的方式为您提供了一个很好的API 你可以轻松处理人际关系 您还可以处理查询生成器中未提供的多态关系 你不必担心加入 你可以用更少的代码做更多的事情 您可以使用变异器和设置器,这样可以节省大量时间 在测试中,您可以轻松地模拟对象 可以强制转换列的类型 希望这些足够了我们使用像Laravel这样的框架来简化我们的工作。说到框架的概念,开发的速度和易用性比性能更重要。因此,通过使用ORM,它提供了处理数据库的强大方法,而不需
- 以面向对象的方式为您提供了一个很好的API
- 你可以轻松处理人际关系
- 您还可以处理
查询生成器中未提供的
多态关系
- 你不必担心加入
- 你可以用更少的代码做更多的事情
- 您可以使用变异器和设置器,这样可以节省大量时间
- 在测试中,您可以轻松地模拟对象
- 可以强制转换列的类型
希望这些足够了我们使用像Laravel这样的框架来简化我们的工作。说到框架的概念,开发的速度和易用性比性能更重要。因此,通过使用ORM,它提供了处理数据库的强大方法,而不需要大量的mysql知识。对于查询生成器,它提供了以高效方式构建查询的方法 根据我的经验,有些事情我们不能用雄辩的口才轻易做到。因此,我们需要使用查询生成器来构建直接查询 所以我认为比较雄辩和查询生成器是不好的 你可以找到更多的细节 但是我可以给你一些建议来选择一种方法
- 如果您更关注效率而不是开发的易用性, 转到查询生成器
- 如果你和一个实体打交道,就选择ORM(雄辩)
- 如果处理多个实体,最好处理查询 建筑商
- 如果您是mysql新手,或者您的应用程序不是很复杂, 一定要选择ORM
- 如果需要更复杂的查询,我建议使用查询生成器
是的,在某些情况下你是对的。当我们有更多的数据时,几乎在每个站点中,数据实际上并不小。那么,使用DB查询比使用雄辩的查询更好 在《雄辩VS DB》的一期演出中,我听说 为一个简单的表插入1000行需要1.2秒,在这种情况下,DB facades只需要800毫秒(ms) 那为什么那么雄辩?没有必要吗? 答案是——雄辩也是必要的。原因- 在需要连接时,使用如此简单的语法创建更好的关系并查看结果 雄辩也适用于对SQL查询了解不多的人 MVC框架遵循代码可读性、代码可维护性以及您知道的雄辩性的规则。下面是代码比较。显然,有口才的人读起来更好
// In Eloquent
$student = App\Student::find($id);
// In DB facade
$student = DB::table('student')->where('id', $id)->first();
最重要的部分是,如果我们想更改其他数据库,那么原始查询将是我们非常头疼的事情,在这种情况下,Laravel Eloquent将用一只手解决所有问题。它可以处理不同类型的数据库
所以当我们使用雄辩和DB facades时:
当我们使用简单的CRUD在一个简单的、小的记录站点上工作时,如果记录不是事实,那么就在那里使用雄辩。
当我们处理大量记录时,最好使用DB查询而不是雄辩。
所以,最后,我们可以清楚地知道,什么时候我们将使用数据库查询,什么时候我们将使用雄辩的查询
编辑-现实生活示例
我正在制作一个大学网站。其中最多可包含5000个
教师和10000名学生以及一些通知和文件。那就是
最好用简单的Laravel雄辩地做到这一点,这是非常重要的
标准和可读性
现在我正在制作一个类似Stackoverflow的网站。其中可能包含超过
10000000(1千万)的帖子和更多的东西。我必须选择
传统的DB正面。它可以更快地搜索
来自这么多记录的帖子
您可以使用Laravel Debugbar(一个用于检查雄辩/数据库查询性能/执行时间的流行软件包)检查查询性能
现在是你的选择。您想使…的内容可能重复,但我想知道这会减慢我的代码?我想说的是,当我从数据库返回数据时,响应需要时间。@KaziBablu Yess ORM速度很慢,但如果它能节省开发时间,你可以使用它。如果我开发大型应用程序,那么ORM更好还是查询生成器更好@拉韦尔莱瓦尔酒店37@KaziBablu与速度相比,ORM还有许多其他优势。但是,如果它真的是一个任务关键型应用程序,你甚至可以跳过一个与核心PHPThanks相关的速度较慢的larvel,以获得你的建议。