SQL与ORM的优缺点

相对来说,ORM的缺点就是SQL的优势地方,而优点也是SQL的劣势地方。

  • 优点
    • 方便的使用面向对象,语句清晰
    • 防注入『这个其实不算ORM的核心,因为比如Phalcon的SQL形式写法也可以防注入』
    • 方便动态构造语句,对于不同的表的相同操作采用多态实现更优雅
    • 一定程度方便重构数据层『比如改表名,字段名等』
    • 设置钩子函数
  • 缺点
    • 不太容易处理复杂查询语句
    • 性能较直接用SQL差

如何选择

尽量使用ORM,除了含子查询的复杂语句『不过大流量下的网站最好不要写这种复杂SQL』,当然这也只是一个原则,所以反过来说也可以,不过以下几个场景用ORM的好处是很明显的

  • Model对象不确定的时候,使用多态的方式去处理不同实例的相同操作
  • 语句结构不确定的时候,比如根据不同的情况Where子句不一样的时候,采用if的代码结构去控制ORM方法的使用比拼接SQL语句要清晰的多
  • 设置钩子函数,比如分页里面,拿分页数据同时要count数据,那么就可以在Model里面插入这个算count的钩子函数(包括缓存逻辑)



  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值