Mysql数据库存储原理
轉載:https://blog.csdn.net/weixin_40612082/article/details/82179714
現在在做數據庫服務器的開發工作,今天被問到存儲過程,當時只是簡單地回答了下,在網上搜索了下資料,才對存儲過程有了新的認識。轉載內容如下:
Mysql儲存過程是一組為了完成特定功能的SQL語句集,經過編譯之后存儲在數據庫中,當需要使用該組SQL語句時用戶只需要通過指定儲存過程的名字并給定參數就可以調用執行它了,簡而言之就是一組已經寫好的命令,需要使用的時候拿出來用就可以了。想要快速的了解Mysql儲存過程嗎,就一同看一下下文的“Mysql儲存過程-原理、語法、函數詳細說明”吧!
一、Mysql儲存過程簡介:?
儲存過程是一個可編程的函數,它在數據庫中創建并保存。它可以有SQL語句和一些特殊的控制結構組成。當希望在不同的應用程序或平臺上執行相同的函數,或者封裝特定功能時,存儲過程是非常有用的。數據庫中的存儲過程可以看做是對編程中面向對象方法的模擬。它允許控制數據的訪問方式。存儲過程通常有以下優點:
1)存儲過程能實現較快的執行速度。?
如果某一操作包含大量的Transaction-SQL代碼或分別被多次執行,那么存儲過程要比批處理的執行速度快很多。因為存儲過程是預編譯的。在首次運行一個存儲過程時查詢,優化器對其進行分析優化,并且給出最終被存儲在系統表中的執行計劃。而批處理的Transaction-SQL語句在每次運行時都要進行編譯和優化,速度相對要慢一些。?
心得:編譯優化,快!
2)存儲過程允許標準組件是編程。?
存儲過程被創建后,可以在程序中被多次調用,而不必重新編寫該存儲過程的SQL語句。而且數據庫專業人員可以隨時對存儲過程進行修改,對應用程序源代碼毫無影響。?
心得:封裝與抽象,簡單調用
3)存儲過程可以用流控制語句編寫,有很強的靈活性,可以完成復雜的判斷和較復雜的運算。?
心得:功能強大,邏輯強大
4)存儲過程可被作為一種安全機制來充分利用。?
系統管理員通過執行某一存儲過程的權限進行限制,能夠實現對相應的數據的訪問權限的限制,避免了非授權用戶對數據的訪問,保證了數據的安全。?
心得:限制與安全
5)存儲過程能過減少網絡流量。?
針對同一個數據庫對象的操作(如查詢、修改),如果這一操作所涉及的Transaction-SQL語句被組織程存儲過程,那么當在客戶計算機上調用該存儲過程時,網絡中傳送的只是該調用語句,從而大大增加了網絡流量并降低了網絡負載
總結
以上是生活随笔為你收集整理的Mysql数据库存储原理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HOOK大神用c++制作绝地求生自瞄物品
- 下一篇: Redis pub/sub机制在实际运用