Laravel 可不可以不用那个 ORM

2017-03-21 16:33:25 +08:00
abcbuzhiming  abcbuzhiming
都说这个 ORM 工具是 laravel 慢的根源,本人从 java 过来的,先用过 hibernate ,然后过度到 mybatis ,因为有这个经历,从来不觉得硬需要一个 ORM 工具,只要数据库访问的接口方便好用灵活就行。 Laravel 的数据可基本操作可有什么非上 ORM 不可的地方吗?如果没有,能不能把 ORM 拆掉以增加速度
5696 次点击
所在节点   PHP  PHP
25 条回复
garveen
garveen
2017-03-21 16:35:52 +08:00
你可以根本不用, DB 这个 facade 提供了足够的操作数据库的方法
abcbuzhiming
abcbuzhiming
2017-03-21 16:37:40 +08:00
@garveen 那如果我不用这个 ORM ,在一次请求过程中 Laraval 还会加载和 ORM 相关的组件吗?
mooncakejs
mooncakejs
2017-03-21 16:38:06 +08:00
可以不用。 equolent 太灵活,刚开始觉得很好用,越来越觉得不好用。
ahkxhyl
ahkxhyl
2017-03-21 16:44:51 +08:00
你的代码你做主~
lookas2001
lookas2001
2017-03-21 17:54:41 +08:00
autoload 还是会加载到类吧,但是你不用的话不会实例化他的(大概?
jhdxr
jhdxr
2017-03-21 18:11:22 +08:00
@abcbuzhiming 如果把『加载』定义为去 include/require 对应的文件,以及实例化对象。那么你不用到相应的功能,是不会加载的。

@lookas2001 参见 spl_autoload_register , autoload 具体的规则是自己实现的。 composer 所实现的 autoload 的逻辑,在你没有去用到那个类的时候,是不会去读对应的文件的
suren1986
suren1986
2017-03-21 18:13:22 +08:00
DB:raw('raw sql command');
quericy
quericy
2017-03-21 18:29:54 +08:00
可以只用 illuminate 的查询构造器
littleylv
littleylv
2017-03-21 18:35:21 +08:00
考虑换一个轻量级的框架?
cxbig
cxbig
2017-03-21 19:02:52 +08:00
LZ 说的太模糊,你用什么方式发现 ORM 慢的?拿数据来说话好么?能不能发代码来让大家看看?
changwei
changwei
2017-03-21 19:25:43 +08:00
我只用查询构造器,主要还是简单方便,而且我对原生 sql 的阅读和理解更加快速。

另外说一下, laravel 是按需加载。而且我有用过 xhprof 测过 laravel 的执行流程,最慢的是路由,当然 orm 也不是很快。
orvice
orvice
2017-03-21 22:18:14 +08:00
可以,建议 lz 试试看 lumen
wdlth
wdlth
2017-03-21 22:25:33 +08:00
相比于数据库的查询时间而言, ORM 的耗时其实也不算多少。
当然对于高级 DBA 来说,就是喜欢一点点的玩坏 SQL 。
Felldeadbird
Felldeadbird
2017-03-22 00:03:41 +08:00
本身不是提供原生 SQL 写法吗?
tcsky
tcsky
2017-03-22 00:31:00 +08:00
慢的不是 orm,是路由什么的. php 和 java 特性差很多.
dsg001
dsg001
2017-03-22 08:33:25 +08:00
不用 laravel ,但 orm 只用 equolent
superkey
superkey
2017-03-22 08:52:27 +08:00
那为什么要用 laravel 呢
likezun
likezun
2017-03-22 09:13:50 +08:00
ORM 用过 propel 和 doctrine , 你没有理解 ORM 才会认为它慢, 简单的说你还不会用
qhxin
qhxin
2017-03-22 09:40:05 +08:00
eloquent 经常拆出来单独使用
KIDJourney
KIDJourney
2017-03-22 09:40:21 +08:00
慢是怎么得出的?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/349178

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX