MySQL學習資料整理

1.MySQL基礎學習資料彙總:

https://www.runoob.com/mysql/mysql-tutorial.html

2.MySQL事務

https://www.runoob.com/mysql/mysql-transaction.html

3.MySQL儲存過程

https://www.cnblogs.com/liuboyuan/p/9375882.html

https://www.jianshu.com/p/de8317436111

4.MySQL觸發器

https://www.cnblogs.com/fps2tao/p/10400936.html

5.MySQL事件

https://www.cnblogs.com/gyfluck/p/11476888.html

https://www.cnblogs.com/gaogaoxingxing/p/9909970.html

6.總結

(1)存儲過程和觸發器二者是有很大的聯繫的,我的一般理解就是觸發器是一個隱藏的存儲過程,因爲它不需要參數,不需要顯示調用,往往在你不知情的情況下已經做了很多操作。從這個角度來說,由於是隱藏的,無形中增加了系統的複雜性,非DBA人員理解起來數據庫就會有困難,因爲它不執行根本感覺不到它的存在。
(2)涉及到複雜的邏輯的時候,觸發器的嵌套是避免不了的,如果再涉及幾個存儲過程,再加上事務等等,很容易出現死鎖現象,再調試的時候也會經常性的從一個觸發器轉到另外一個,級聯關係的不斷追溯,很容易使人頭大。其實,從性能上,觸發器並沒有提升多少性能,只是從代碼上來說,可能在coding的時候很容易實現業務,所以我的觀點是:摒棄觸發器!觸發器的功能基本都可以用存儲過程來實現。
(3)在編碼中存儲過程顯示調用很容易閱讀代碼,觸發器隱式調用容易被忽略。
(4)存儲過程的致命傷在於移植性,存儲過程不能跨庫移植,比如事先是在mysql數據庫的存儲過程,考慮性能要移植到oracle上面那麼所有的存儲過程都需要被重寫一遍。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章