事務是保證多個sql語句的原子型的,也就是要麼一起完成,要麼一起不完成
儲存過程是把一批sql語句預編譯後放在伺服器上,然後可以遠端呼叫
儲存過程:
一組為了完成特定功能的sql語句集(或者自定義資料庫操作命令集), www.cppcns.com根據傳入的引數(也可以沒有), 通過簡單的呼叫, 完成比單個sql語句更複雜的功能, 儲存在資料庫伺服器端,只需要編譯過一次之後再次使用都不需要再進行編譯:主要對儲存的過程進行控制。
優點:1、執行速度快。尤其對於較為複雜的邏輯,減dmpqlqizm少了網路流量之間的消耗,另外比較重要的一點是儲存過程只在創造時進行編譯,以後每次執行儲存過程都不需再重新編譯,www.cppcns.com而一般 sql 語句每執行一次就編譯一次,所以使用儲存過程可提高資料庫執行速度。。
2、提高工作效率。寫程式簡單,採用儲存過程呼叫類,呼叫任何儲存過程都只要1-2行**。
3、規範程式設計,公升級、維護方便。
4、提高系統安全性。可設定只有某使用者才具有對指定儲存過程的使用權。
資料量小的,或者和錢沒關係的專案不用儲存過程也可以正常運作。mysql 的儲存過程還有待實際測試。如果是正式專案,建議你用 sql server 或 oracle 的儲存過程。資料與資料之間打交道的話,過程會比程式來的快的多。
缺點:程式部分功能移到了資料庫內,破壞了cvm三層結構設計
事務:一系列的資料更改操作組成的乙個整體。這些操作包括儲存過程,更改語句及其它操作。一旦事務中包含的某操作失敗或使用者程式設計客棧中止,使用者可以控制將事務體中所有操作撤消,返回事務開始前的狀態。事務中的操作是乙個整體,要麼整體完成,要麼全部不做。從而保證了資料的完整性。
事務中可以有儲存過程 儲存過程中也可以有事務。
什麼時候使用儲存過程比較適合?
1、當乙個業務同時對多個表進行處理的時候採用儲存過程比較合適。
2、複雜的資料處理用儲存過程,如有些報表處理。
3、多條件多表聯合查詢,並做分頁處理。
什麼時候使用事務比較適合?
每次使用事務,都會占用一定的開銷。另外,事務可能會鎖定一些表的行。所以,不必要的事務會導致效能損失。這裡有乙個規則,只有當操作需要的時候才使用事務。例如,如果只是從資料庫中查詢一些記錄,或者執行單個查詢,在大部分時候都不需要顯式的事務,因為宣告都已經封裝在隱式的事務中。但是,正如前文提到,在多宣告更新時非常重要,因為事務能夠實際提公升操作速度。同樣,如果需要在節省數毫秒時間和危害資料完整性之間做出乙個選擇的話,那麼正確的答案就是保持資料清潔,不要擔心那數毫秒的時間消耗。
另外使用事務之前需要注意的是:盡可能短的保持事務。避免使用在事務中的select返回資料,除非語句依賴於返回資料。如果使用select語句,只選擇需要的行,因此不要鎖定過多的資源同時保持盡可能高的效能。在架構語序的情況下,從事務中移出所有select語句。這麼做是因為事務在處理的過程中會鎖定所有被操作的資料行,這樣會影響其他併發的sql語句的執行。
總結
mysql資料庫儲存過程之事務
例項 例子 delimiter drop procedure if exists insert corp create definer procedure mop insert corp in loop time bigint language sql not deterministic sql s...
Mysql資料庫 事務和儲存引擎
總的來說,事務就是是乙個操作序列,這些操作要麼都執行,要麼都不執行,它是乙個不可分割的工作單位。acid,是指在可靠資料庫管理系統 dbms 中,事務 transaction 應該具有的四個特性 原子性 atomicity 一致性 consistency 隔離性 isolation 永續性 dura...
資料庫 事務,儲存過程 (更新)
是作為單個邏輯單元執行的一系列操作,這些操作作為乙個整體一起向系統提交,要麼都執行,要麼都不執行。事務是乙個不可分割的工作邏輯單元 事務必須具備以下四個屬性,簡稱acid屬性 原子性 atomicity 一致性 consistency 隔離性 isolation 永久性 durability 一組為...