sql數據庫數據量龐大時怎么處理?
我用的是postgresql,發現同樣的邏輯,存儲過程的代碼是c#的三分之一。因為存儲過程語言是為描述數據創建的,對于變量和數據的混合處理有天然優勢。再加上一些注釋,代碼可讀性比c#更高。而且由于服務器和數據庫是一次交互,執行更快,用戶體驗好,服務器并發好。postgresql存儲過程支持斷點調試的。當然我不建議幾千行的存儲過程。存儲過程的目的是為了執行速度更快,代碼更簡潔。我也不認為簡單的增刪改查也用存儲過程。這些應該交給orm。存儲過程應該用同時滿足以下幾個條件時:1.用戶高頻使用這個功能 2.這個功能需要多次訪問數據庫
存儲過程的另一個好處是在編譯時就可以檢查sql語句的錯誤不用等執行。缺點是,當數據庫修改后,你如果不重新編譯存儲過程是無法知道程序中哪些地方需要修改字段名。但是相比她帶來的好處,這一點可以忍受。另外orm也只是可以檢測字段,但是存儲過程連語法都檢測了。
現代互聯網應用的基石是mysql,而早期mysql沒有存儲過程,而且數據往往要分多個庫,搞存儲過程要一個個庫去更新,萬一漏了一個就會出問題?;ヂ摼W應用的邏輯相對沒有erp復雜,所以都不用存儲過程。但是現在是2019年了,mysql數據庫也支持分區表了,一個庫就能搞定很大數據量。存儲過程也支持了,適當使用存儲過程并無不妥。尤其是postgresql數據庫連斷點調試都具備了,語法又那么優雅。
所以我支持用存儲過程,但不能濫用,要好鋼用刀刃上