V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
abcbuzhiming
V2EX  ›  PHP

Laravel 可不可以不用那个 ORM

  •  
  •   abcbuzhiming · Mar 21, 2017 · 6436 views
    This topic created in 3323 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
        1
    garveen  
       Mar 21, 2017
    你可以根本不用, DB 这个 facade 提供了足够的操作数据库的方法
    abcbuzhiming
        2
    abcbuzhiming  
    OP
       Mar 21, 2017
    @garveen 那如果我不用这个 ORM ,在一次请求过程中 Laraval 还会加载和 ORM 相关的组件吗?
    mooncakejs
        3
    mooncakejs  
       Mar 21, 2017
    可以不用。 equolent 太灵活,刚开始觉得很好用,越来越觉得不好用。
    ahkxhyl
        4
    ahkxhyl  
       Mar 21, 2017
    你的代码你做主~
    lookas2001
        5
    lookas2001  
       Mar 21, 2017
    autoload 还是会加载到类吧,但是你不用的话不会实例化他的(大概?
    jhdxr
        6
    jhdxr  
       Mar 21, 2017
    @abcbuzhiming 如果把『加载』定义为去 include/require 对应的文件,以及实例化对象。那么你不用到相应的功能,是不会加载的。

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

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