【代码操作数据】【存储过程操作数据】有一个共同的目的:有逻辑性地操作数据。
根本问题是两者如何抉择,所以看一下两者各方面的优劣便知
1. 是否都能够实现目的?
是的
2. 哪个性能高?
简单来说,存储过程减少了网络开销,性能更高。
3. 可维护性哪个好?
存储过程对于开发人员而言,是额外的一个逻辑层面;对于运维人员而言,是额外的部署层面。而且通过存储过程进行数据操作,可能会遗漏代码中原本应该有的触发动作。逻辑维护在同一个层面更利于维护。
4. 安全性哪个好?
从功能角度出发:代码可调试性远高于存储过程,存储过程需要额外的权限才能在生产环境进行模拟调试。
从性能压力出发:存储过程运行在数据库服务器层,一旦出现压力问题,整个数据库层级都受到影响;代码运行在业务服务器层,出现问题仅影响某段业务逻辑。
SQL注入攻击:两者都可以防范。
5. 哪个写起来方便?
都需要调试测试的情况下,代码有更加成熟的编辑器,并且可以自定义日志输出,异常控制,相对来说更方便一些。