gpt4 book ai didi

Laravel Eloquent vs DB外观: Why use Eloquent and decrease performance?

转载 作者:IT老高 更新时间:2023-10-28 12:56:00 30 4
gpt4 key购买 nike

我在 Laravel's DB facade query builder 之间进行了一些性能测试和 Laravel's Eloquent ORM .对于许多 SQL 语句(SELECT、UPDATE、DELETE、INSERT),DB 外观比 Eloquent 快得多。

那么为什么有人会使用较慢的 Laravel Eloquent 而不是较快的 DB 外观?

最佳答案

Eloquent 是 Laravel 对 Active Record 模式的实现,它具有所有优点和缺点。

Active Record 是一种很好的以 CRUD 方式处理单个实体的解决方案 - 即创建一个具有填充属性的新实体,然后将其保存到数据库、从数据库加载记录或删除。

您将从 Eloquent 的功能中受益匪浅,例如脏检查(仅针对已更改的字段发送 SQL UPDATE)、模型事件(例如,当有人创建新帐户时发送管理警报或更新统计计数器) , 特征(时间戳、软删除、自定义特征)急切/延迟加载等。您还可以应用域驱动模式并在 Active Record 实体中实现一些业务逻辑,例如验证、管理关系、计算等。

但是,正如您已经知道的那样,Active Record 有一些性能价格。

当您处理单个记录或几条记录时,无需担心。但是对于读取大量记录的情况(例如,对于数据网格、报告、批处理等),普通的 Laravel DB 方法是更好的方法。

对于我们基于 Laravel 的应用程序,我们使用了我们认为合适的两种方法。我们使用 Laravel 的 Eloquent for UI 表单来处理单个记录,并使用 DB 方法(由 SQL View 支持,并带有额外的数据库引擎特定的性能调整)来检索 UI 表的数据、导出任务等。它也可以工作很好地使用 RESTful API - Eloquent 用于 GET、PUT、POST、DELETE(带键)和 DB 用于 GET (无键但具有过滤器、排序和分页)。

关于Laravel Eloquent vs DB外观: Why use Eloquent and decrease performance?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38391710/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com