到底该不该使用存储过程
百度百科對存儲過程的定義
存儲過程(Stored Procedure)是在大型數據庫系統中,一組為了完成特定功能的SQL 語句集,它存儲在數據庫中,一次編譯后永久有效,用戶通過指定存儲過程的名字并給出參數(如果該存儲過程帶有參數)來執行它。存儲過程是數據庫中的一個重要對象。在數據量特別龐大的情況下利用存儲過程能達到倍速的效率提升;
那么關于開發當中是否使用存儲過程,一直以來都有很多爭論;
在《阿里巴巴java編碼規范》有這樣一條
關于這個,我個人在互聯網行業是贊同的;
首先,確實很難調試,如果把大量的業務寫在存儲過程,那么調試閱讀起來是
很痛苦的,試想一下,在幾百行的sql 里面 ,你要一個個去理解它的意思;
有時候,你需要逐行去驗證對錯;再者你要增加功能 ,只能在繼續往上面堆sql,最后造成惡性循環;
至于移植,在不同的數據庫有些機制還是略有不同的,還是需要改sql;
所以在互聯網行業,一般是不提倡使用存儲過程的;
那么有人會問存儲過程執行效率高啊,確實如此,但是為了那么一點點性能
犧牲開發效率和維護性就得不償失;況且效率性能的重點根本不在那么一點點損耗;就像有人覺得原生的sql 效率高,拒絕orm 是一樣的;沒有注意到事情的本質;因噎廢食;
當然,事情有兩面性,有些行業,比如傳統的管理類系統,由于需求變化大,
業務復雜,軟件產品化等客觀原因,存儲過程就不失一個好的辦法,比如erp實施;很多時候都是懂點sql 的實施人員去做,而不是開發人員再去搗鼓代碼。
總結
以上是生活随笔為你收集整理的到底该不该使用存储过程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 记一次引入Elasticsearch的系
- 下一篇: 老黄的2021