濮阳杆衣贸易有限公司

主頁 > 知識庫 > MySQL數(shù)據(jù)庫存儲過程和事務(wù)的區(qū)別講解

MySQL數(shù)據(jù)庫存儲過程和事務(wù)的區(qū)別講解

熱門標(biāo)簽:溫州瑞安400電話怎么申請 電話機器人市場趨勢 南昌高頻外呼系統(tǒng)哪家公司做的好 電銷機器人各個細(xì)節(jié)介紹 淄博400電話申請 俄國地圖標(biāo)注app 昆明電信400電話辦理 百度地圖標(biāo)注后不顯示 電銷機器人 行業(yè)

事務(wù)是保證多個SQL語句的原子型的,也就是要么一起完成,要么一起不完成

存儲過程是把一批SQL語句預(yù)編譯后放在服務(wù)器上,然后可以遠(yuǎn)程調(diào)用

存儲過程:

一組為了完成特定功能的SQL語句集(或者自定義數(shù)據(jù)庫操作命令集), 根據(jù)傳入的參數(shù)(也可以沒有), 通過簡單的調(diào)用, 完成比單個SQL語句更復(fù)雜的功能, 存儲在數(shù)據(jù)庫服務(wù)器端,只需要編譯過一次之后再次使用都不需要再進(jìn)行編譯:主要對存儲的過程進(jìn)行控制。

優(yōu)點:

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

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

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

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ù):

一系列的數(shù)據(jù)更改操作組成的一個整體。這些操作包括存儲過程,更改語句及其它操作。一旦事務(wù)中包含的某操作失敗或用戶中止,用戶可以控制將事務(wù)體中所有操作撤消,返回事務(wù)開始前的狀態(tài)。事務(wù)中的操作是一個整體,要么整體完成,要么全部不做。從而保證了數(shù)據(jù)的完整性。

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

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

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

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í)行。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接

您可能感興趣的文章:
  • 解決Mysql收縮事務(wù)日志和日志文件過大無法收縮問題
  • 解析mysql二進(jìn)制日志處理事務(wù)與非事務(wù)性語句的區(qū)別
  • MySQL事務(wù)及Spring隔離級別實現(xiàn)原理詳解
  • MySQL 事務(wù)概念與用法深入詳解
  • mysql事務(wù)管理操作詳解
  • mysql事務(wù)select for update及數(shù)據(jù)的一致性處理講解
  • mysql日志觸發(fā)器實現(xiàn)代碼
  • MySQL5.7慢查詢?nèi)罩緯r間與系統(tǒng)時間差8小時原因詳解
  • mysql將bin-log日志文件轉(zhuǎn)為sql文件的方法
  • Mysql數(shù)據(jù)庫清理binlog日志命令詳解
  • MySQL開啟慢查詢?nèi)罩竟δ艿姆椒?/li>
  • 詳解 Mysql 事務(wù)和Mysql 日志

標(biāo)簽:甘南 安徽 洛陽 葫蘆島 拉薩 ???/a> 嘉峪關(guān) 吐魯番

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《MySQL數(shù)據(jù)庫存儲過程和事務(wù)的區(qū)別講解》,本文關(guān)鍵詞  MySQL,數(shù)據(jù)庫,存儲,過程,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《MySQL數(shù)據(jù)庫存儲過程和事務(wù)的區(qū)別講解》相關(guān)的同類信息!
  • 本頁收集關(guān)于MySQL數(shù)據(jù)庫存儲過程和事務(wù)的區(qū)別講解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    浠水县| 华安县| 姜堰市| 沙田区| 新和县| 历史| 庄浪县| 晋州市| 宣武区| 湟源县| 遵义县| 浮梁县| 广昌县| 哈尔滨市| 平安县| 阜宁县| 乌鲁木齐市| 商南县| 新民市| 瓦房店市| 桓台县| 册亨县| 福泉市| 噶尔县| 鄯善县| 靖江市| 泊头市| 原阳县| 得荣县| 喜德县| 从江县| 丰顺县| 龙游县| 达尔| 精河县| 仁怀市| 洞头县| 泾川县| 昌乐县| 威远县| 漾濞|