Sql Laravel雄辩的ORM vs查询生成器哪一个更好?

Sql Laravel雄辩的ORM vs查询生成器哪一个更好?,sql,laravel,Sql,Laravel,谁能告诉我ORM或查询生成器哪一个更好?它的好处是什么?ORM 以面向对象的方式为您提供了一个很好的API 你可以轻松处理人际关系 您还可以处理查询生成器中未提供的多态关系 你不必担心加入 你可以用更少的代码做更多的事情 您可以使用变异器和设置器,这样可以节省大量时间 在测试中,您可以轻松地模拟对象 可以强制转换列的类型 希望这些足够了我们使用像Laravel这样的框架来简化我们的工作。说到框架的概念,开发的速度和易用性比性能更重要。因此,通过使用ORM,它提供了处理数据库的强大方法,而不需

谁能告诉我ORM或查询生成器哪一个更好?它的好处是什么?

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,以获得你的建议。