亚洲免费在线视频-亚洲啊v-久久免费精品视频-国产精品va-看片地址-成人在线视频网

您的位置:首頁技術文章
文章詳情頁

為什么大家都不推薦使用MySQL觸發器而用存儲過程?

瀏覽:131日期:2022-06-21 15:09:10

問題描述

不止一次在各大論壇,文章中看到大多數人不推薦觸發器,統統推薦存儲過程。這是為什么呢?現在的場景是:1000萬數據,1萬并發的規模。疑問:我的理解是:觸發器本身就是特殊的存儲過程,那么如果業務邏輯本身不需要定義變量,不需要定義事務,僅僅需要for each row /update/delete/insert,僅僅需要觸發器的情況下,還要特定使用存儲過程嗎?

還是說觸發器本身具有特別大的性能問題呢?

問題解答

回答1:

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

回答2:

我建議都不要用為好。

這種東西只有在并發不高的項目,管理系統中用。

如果是面向用戶的高并發應用,都不要使用。

觸發器和存儲過程本身難以開發和維護,不能高效移植。

觸發器完全可以用事務替代。存儲過程可以用后端腳本替代。

回答3:

我覺得來自兩方面的因素:1- 存儲過程需要顯式調用,意思是閱讀源碼的時候你能知道存儲過程的存在,而觸發器必須在數據庫端才能看到,容易被忽略。2- Mysql的觸發器本身不是很好,比如after delete無法鏈式反應的問題。我認為性能上其實還是觸發器占優勢的,但是基于以上原因不受青睞。

相關文章:
主站蜘蛛池模板: 日本特黄特色视频 | 色网址在线观看 | 91精品国产91久久久久 | 欧美人成在线观看网站高清 | 国产一级做a爰片在线 | 免费观看性欧美一级 | 性做久久久久久 | 国产成人福利视频在线观看 | 亚洲国产成人私人影院 | 日韩 欧美 中文 亚洲 高清 在线 | 国产精品久久久久久久久免费hd | 国产免费福利体检区久久 | 欧美一区精品 | 久久国产精品久久国产片 | 白云精品视频国产专区 | 日韩精品免费一级视频 | 91精品国产乱码久久久久久 | 亚洲综合久久久久久888 | 香蕉久久网站 | 国产乱肥老妇精品视频 | 欧美一级va在线视频免费播放 | 久久香蕉国产精品一区二区三 | 日韩精品一区二区三区在线观看l | 好吊操这里只有精品 | 一本久久精品一区二区 | 日本高清色本在线www | 欧美一区二区日韩一区二区 | a级毛片免费高清视频 | 亚洲成人手机在线 | 国产成人精品视频频 | 欧美在线观看一区二区三区 | 国产精品性视频免费播放 | 女人张开腿让男人 | 国产精品久久久久久久免费大片 | 国产短视频精品一区二区三区 | 亚洲视频在线播放 | 女人扒开腿让男人捅啪啪 | 99精品热女视频专线 | 欧美色成人 | 不卡精品国产_亚洲人成在线 | 黑色丝袜美美女被躁视频 |