abcbuzhiming
V2EX  ›  PHP

Laravel 可不可以不用那个 ORM

  •  
  •   abcbuzhiming · Mar 21, 2017 · 6983 views
    This topic created in 3516 days ago, the information mentioned may be changed or developed.
    都说这个 ORM 工具是 laravel 慢的根源,本人从 java 过来的,先用过 hibernate ,然后过度到 mybatis ,因为有这个经历,从来不觉得硬需要一个 ORM 工具,只要数据库访问的接口方便好用灵活就行。 Laravel 的数据可基本操作可有什么非上 ORM 不可的地方吗?如果没有,能不能把 ORM 拆掉以增加速度
    25 replies  •  2019-05-20 20:44:59 +08:00
    garveen
    garveen
    Mar 21, 2017
    1
    你可以根本不用, DB 这个 facade 提供了足够的操作数据库的方法
    abcbuzhiming
    abcbuzhiming
    OP
    Mar 21, 2017
    2
    @garveen 那如果我不用这个 ORM ,在一次请求过程中 Laraval 还会加载和 ORM 相关的组件吗?
    mooncakejs
    mooncakejs
    Mar 21, 2017
    3
    可以不用。 equolent 太灵活,刚开始觉得很好用,越来越觉得不好用。
    ahkxhyl
    ahkxhyl
    Mar 21, 2017
    4
    你的代码你做主~
    lookas2001
    lookas2001
    Mar 21, 2017
    5
    autoload 还是会加载到类吧,但是你不用的话不会实例化他的(大概?
    jhdxr
    jhdxr
    Mar 21, 2017
    6
    @abcbuzhiming 如果把『加载』定义为去 include/require 对应的文件,以及实例化对象。那么你不用到相应的功能,是不会加载的。

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

    另外说一下, laravel 是按需加载。而且我有用过 xhprof 测过 laravel 的执行流程,最慢的是路由,当然 orm 也不是很快。
    orvice
    orvice
    Mar 21, 2017
    12
    可以,建议 lz 试试看 lumen
    wdlth
    wdlth
    Mar 21, 2017
    13
    相比于数据库的查询时间而言, ORM 的耗时其实也不算多少。
    当然对于高级 DBA 来说,就是喜欢一点点的玩坏 SQL 。
    Felldeadbird
    Felldeadbird
    Mar 22, 2017
    14
    本身不是提供原生 SQL 写法吗?
    tcsky
    tcsky
    Mar 22, 2017
    15
    慢的不是 orm,是路由什么的. php 和 java 特性差很多.
    dsg001
    dsg001
    Mar 22, 2017
    16
    不用 laravel ,但 orm 只用 equolent
    superkey
    superkey
    Mar 22, 2017
    17
    那为什么要用 laravel 呢
    likezun
    likezun
    Mar 22, 2017
    18
    ORM 用过 propel 和 doctrine , 你没有理解 ORM 才会认为它慢, 简单的说你还不会用
    qhxin
    qhxin
    Mar 22, 2017 via Android
    19
    eloquent 经常拆出来单独使用
    KIDJourney
    KIDJourney
    Mar 22, 2017
    20
    慢是怎么得出的?
    iot
    iot
    Mar 22, 2017
    21
    我写复杂的 sql 不用 ORM ,太复杂了,直接用 DB::raw
    ipom
    ipom
    Mar 22, 2017
    22
    LZ 用 Phalcon 框架的 ORM 组件吧
    GnailiyLin
    GnailiyLin
    Mar 22, 2017
    23
    在 laravel 框架上做过测试,结果很意外, eloquent 是最快的,但是耗费内存也是最高的。
    river1007
    river1007
    Mar 23, 2017
    24
    https://github.com/slimphp/Slim 用这个吧。想换啥都行。
    whitecaihong
    whitecaihong
    May 20, 2019
    25
    http://www.wangsitong.com/index.php/archives/121/ 我做过测试,楼上说哪慢的真的觉得 laravel 是世界上最好的语言的最好的框架么?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4805 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 78ms · UTC 07:25 · PVG 15:25 · LAX 23:25 · JFK 02:25
    ♥ Do have faith in what you're doing.