web项目中应不应该使用大量存储过程

2019-09-25 17:47:54  卢浮宫  版权声明:本文为站长原创文章,转载请写明出处


一、前言

    最近遇到一个业务场景,代码实现需要多次业务操作。如果使用存储过程则可以一次调用完成相对复杂的业务操作。

但是,要不要使用存储过程?使用存储过程有哪些不好的地方吗?今天我们就这个问题做一下简单的剖析。


二、你使用过存储过程吗

    1、之前公司是做OA的,项目中许多业务操作都是使用的存储过程实现。于是也使用了一年多的存储过程。

    2、当时的感觉就是效率:一些复杂的业务操作在几十行的存储过程中得到完美实践,要是换到程序中可能就是多少倍的代码工作量了。

    3、但是也有不舒服的时候:数据库变动导致牵涉所有的存储过程变动、业务逻辑变更、字段增减带来比较多的修改操作。

    总之:就当时来说觉得使用存储过程还是挺好的吧。


三、阿里不推荐使用存储过程        

    

    这个是阿里巴巴java开发技术手册中明确提到的。至于为什么,我们下面一一分析。

  

四、汇总如下

    1、先说下存储过程的好处

        ①存储过程预编译,不需要解析,执行速度快,

        ②避免了sql注入和表字段,表结构的暴露

        ③可以通过少量的sql完成较多的业务处理

    2、存储过程的缺点

        业务逻辑封装在数据库中有明显的缺陷

            ①oracle移植到mysql由于语法不一致导致重写

            ②数据库结构改动,牵一发动所有存储过程


五、为什么还会有企业在普遍使用大量的存储过程(存在即合理)

    1、传统通信,金融对安全的需求较高:

        存储过程避免暴露一些信息和sql注入

    2、稳定

        老生常谈,这类项目稳定是第一位的。数据库变动不大,只要数据库不崩就不会有问题。

    3、充分利用数据库价值

        这类应用部署在政府机关等地,有钱,机房稳定,oracle也给力[坏笑]

    4、有钱

        从硬件到网络投入较多,人家就是有资源优势


六、总结

    1、不能一概而论,要看具体业务场景

    2、如果是通信、金融、国企类项目。追求系统安全,稳定,高速,且能提供一流的硬件支出,使用存储过程无可厚非。

    3、如果是互联网项目(目前分布式居多),业务变动大,流动性强,就尽量避免过多使用存储过程。




更多精彩请关注guangmuhua.com


最新评论:

2023-08-02 09:22:30
1楼