溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

MySQL存儲過程和事務(wù)優(yōu)點及作用

發(fā)布時間:2020-05-25 15:17:07 來源:PHP中文網(wǎng) 閱讀:314 作者:三月 欄目:MySQL數(shù)據(jù)庫

本文主要給大家介紹MySQL存儲過程和事務(wù)優(yōu)點及作用,文章內(nèi)容都是筆者用心摘選和編輯的,具有一定的針對性,對大家的參考意義還是比較大的,下面跟筆者一起了解下MySQL存儲過程和事務(wù)優(yōu)點及作用吧。                                                            

存儲過程:

優(yōu)點:

1、執(zhí)行速度快。尤其對于較為復(fù)雜的邏輯,減少了網(wǎng)絡(luò)流量之間的消耗,另外比較重要的一點是存儲過程只在創(chuàng)造時進行編譯,以后每次執(zhí)行存儲過程都不需再重新編譯,而一般 SQL 語句每執(zhí)行一次就編譯一次,所以使用存儲過程可提高數(shù)據(jù)庫執(zhí)行速度。。

2、提高工作效率。寫程序簡單,采用存儲過程調(diào)用類,調(diào)用任何存儲過程都只要1-2行代碼。

3、規(guī)范程序設(shè)計,升級、維護方便。

4、提高系統(tǒng)安全性??稍O(shè)定只有某用戶才具有對指定存儲過程的使用權(quán)。

數(shù)據(jù)量小的,或者和錢沒關(guān)系的項目不用存儲過程也可以正常運作。mysql 的存儲過程還有待實際測試。如果是正式項目,建議你用 sql server 或 oracle 的存儲過程。數(shù)據(jù)與數(shù)據(jù)之間打交道的話,過程會比程序來的快的多。

缺點:

程序部分功能移到了數(shù)據(jù)庫內(nèi),破壞了CVM三層結(jié)構(gòu)設(shè)計

事務(wù):

事務(wù)中可以有存儲過程 存儲過程中也可以有事務(wù)。

什么時候使用存儲過程比較適合?

1、當(dāng)一個業(yè)務(wù)同時對多個表進行處理的時候采用存儲過程比較合適。

2、復(fù)雜的數(shù)據(jù)處理用存儲過程,如有些報表處理。

3、多條件多表聯(lián)合查詢,并做分頁處理。

什么時候使用事務(wù)比較適合?

每次使用事務(wù),都會占用一定的開銷。另外,事務(wù)可能會鎖定一些表的行。所以,不必要的事務(wù)會導(dǎo)致性能損失。這里有一個規(guī)則,只有當(dāng)操作需要的時候才使用事務(wù)。例如,如果只是從數(shù)據(jù)庫中查詢一些記錄,或者執(zhí)行單個查詢,在大部分時候都不需要顯式的事務(wù),因為聲明都已經(jīng)封裝在隱式的事務(wù)中。但是,正如前文提到,在多聲明更新時非常重要,因為事務(wù)能夠?qū)嶋H提升操作速度。同樣,如果需要在節(jié)省數(shù)毫秒時間和危害數(shù)據(jù)完整性之間做出一個選擇的話,那么正確的答案就是保持?jǐn)?shù)據(jù)清潔,不要擔(dān)心那數(shù)毫秒的時間消耗。

另外使用事務(wù)之前需要注意的是:盡可能短的保持事務(wù)。避免使用在事務(wù)中的SELECT返回數(shù)據(jù),除非語句依賴于返回數(shù)據(jù)。如果使用SELECT語句,只選擇需要的行,因此不要鎖定過多的資源同時保持盡可能高的性能。在架構(gòu)語序的情況下,從事務(wù)中移出所有SELECT語句。這么做是因為事務(wù)在處理的過程中會鎖定所有被操作的數(shù)據(jù)行,這樣會影響其他并發(fā)的sql語句的執(zhí)行。

看完以上關(guān)于MySQL存儲過程和事務(wù)優(yōu)點及作用,很多讀者朋友肯定多少有一定的了解,如需獲取更多的行業(yè)知識信息 ,可以持續(xù)關(guān)注我們的行業(yè)資訊欄目的。 

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI