可是存儲過程處理比較複雜的業務時比較實用。
好比說,一個複雜的數據操做。若是你在前臺處理的話。可能會涉及到屢次數據庫鏈接。
但若是你用存儲過程的話。就只有一次。從響應時間上來講有優點。
也就是說存儲過程能夠給咱們帶來運行效率提升的好處。
另外,程序容易出現 BUG
數據量小的,或者和錢不要緊的項目不用存儲過程也能夠正常運做。mysql 的存儲過程還有待實際測試。若是是正式項目,建議你用 sql
server 或 oracle
的存儲過程。數據與數據之間打交道的話,過程會比程序來的快的多。面試官問有沒有用存儲,實際上就是想知道前來面試的程序員到底作過數據量大的項目沒。如
果是培訓出來的,或者小項目小公司出來的,對存儲確定接觸的少了。
因此,要想進大公司,沒有豐富存儲過程經驗,是不行的。
錯。存儲過程不單單適用於大型項目,對於中小型項目,使用存儲過程也是很是有必要的。其威力和優點主要體如今:
1.存儲過程只在創造時進行編譯,之後每次執行存儲過程都不需再從新編譯,而通常 SQL
語句每執行一次就編譯一次,因此使用存儲過程可提升數據庫執行速度。
2.當對數據庫進行復雜操做時(如對多個表進行
Update,Insert,Query,Delete
時),可將此複雜操做用存儲過程封裝起來與數據庫提供的事務處理結合一塊兒使用。這些操做,若是用程序來完成,就變成了一條條的 SQL
語句,可能要屢次鏈接數據庫。而換成存儲,只須要鏈接一次數據庫就能夠了。
3.存儲過程能夠重複使用,可減小數據庫開發人員的工做量。
4.安全性高,可設定只有某此用戶才具備對指定存儲過程的使用權。
存儲過程的缺點
1:調試麻煩,可是用 PL/SQL Developer 調試很方便!彌補這個缺點。
2:移植問題,數據庫端代碼固然是與數據庫相關的。可是若是是作工程型項目,基本不存在移植問題。
3:從新編譯問題,由於後端代碼是運行前編譯的,若是帶有引用關係的對象發生改變時,受影響的存儲過程、包將須要從新編譯(不過也能夠設置成運行時刻自動編譯)。
4:若是在一個程序系統中大量的使用存儲過程,到程序交付使用的時候隨着用戶需求的增長會致使數據結構的變化,接着就是系統的相關問題了,最後若是用戶想維護該系統能夠說是很難很難、並且代價是空前的。維護起來更加麻煩!