我用的是postgresql,发现同样的逻辑,存储过程的代码是c#的三分之一。因为存储过程语言是为描述数据创建的,对于变量和数据的混合处理有天然优势。再加上一些注释,代码可读性比c#更高。而且由于服务器和数据库是一次交互,执行更快,用户体验好,服务器并发好。postgresql存储过程支持断点调试的。当然我不建议几千行的存储过程。存储过程的目的是为了执行速度更快,代码更简洁。我也不认为简单的增删改查也用存储过程。这些应该交给orm。存储过程应该用同时满足以下几个条件时:1.用户高频使用这个功能 2.这个功能需要多次访问数据库
存储过程的另一个好处是在编译时就可以检查sql语句的错误不用等执行。缺点是,当数据库修改后,你如果不重新编译存储过程是无法知道程序中哪些地方需要修改字段名。但是相比她带来的好处,这一点可以忍受。另外orm也只是可以检测字段,但是存储过程连语法都检测了。
现代互联网应用的基石是mysql,而早期mysql没有存储过程,而且数据往往要分多个库,搞存储过程要一个个库去更新,万一漏了一个就会出问题。互联网应用的逻辑相对没有erp复杂,所以都不用存储过程。但是现在是2019年了,mysql数据库也支持分区表了,一个库就能搞定很大数据量。存储过程也支持了,适当使用存储过程并无不妥。尤其是postgresql数据库连断点调试都具备了,语法又那么优雅。
所以我支持用存储过程,但不能滥用,要好钢用刀刃上
Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有