您好,登錄后才能下訂單哦!
這篇文章主要講解了“mysql中事務和存儲過程指的是什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“mysql中事務和存儲過程指的是什么”吧!
在mysql中,事務是用戶定義的一個數據操作序列,包含了一組數據庫操作命令;事務把所有的命令作為一個整體一起向系統提交或撤銷操作請求,即這一組數據庫命令要么都執行,要么都不執行,因此事務是一個不可分割的工作邏輯單元。存儲過程是一組為了完成特定功能的SQL語句集合;一個存儲過程是一個可編程的函數,它在數據庫中創建并保存,一般由SQL語句和一些特殊的控制結構組成。
本教程操作環境:windows7系統、mysql8版本、Dell G3電腦。
mysql中的事務
數據庫的事務(Transaction)是一種機制、是用戶定義的一個數據操作序列,包含了一組數據庫操作命令。事務把所有的命令作為一個整體一起向系統提交或撤銷操作請求,即這一組數據庫命令要么都執行,要么都不執行,因此事務是一個不可分割的工作邏輯單元。
在數據庫系統上執行并發操作時,事務是作為最小的控制單元來使用的,特別適用于多用戶同時操作的數據庫系統。例如,航空公司的訂票系統、銀行、保險公司以及證券交易系統等。
MySQL 事務主要用于處理操作量大,復雜度高的數據。比如說,在人員管理系統中,你刪除一個人員,你既需要刪除人員的基本資料,也要刪除和該人員相關的信息,如信箱,文章等等,這樣,這些數據庫操作語句就構成一個事務!
在 MySQL 中只有使用了 Innodb 數據庫引擎的數據庫或表才支持事務。
事務處理可以用來維護數據庫的完整性,保證成批的 SQL 語句要么全部執行,要么全部不執行。
事務用來管理 insert、update、delete 語句
一般來說,事務是必須滿足4個條件(ACID)::原子性(Atomicity,或稱不可分割性)、一致性(Consistency)、隔離性(Isolation,又稱獨立性)、持久性(Durability)。
原子性:一個事務(transaction)中的所有操作,要么全部完成,要么全部不完成,不會結束在中間某個環節。事務在執行過程中發生錯誤,會被回滾(Rollback)到事務開始前的狀態,就像這個事務從來沒有執行過一樣。
一致性:在事務開始之前和事務結束以后,數據庫的完整性沒有被破壞。這表示寫入的資料必須完全符合所有的預設規則,這包含資料的精確度、串聯性以及后續數據庫可以自發性地完成預定的工作。
隔離性:數據庫允許多個并發事務同時對其數據進行讀寫和修改的能力,隔離性可以防止多個事務并發執行時由于交叉執行而導致數據的不一致。事務隔離分為不同級別,包括讀未提交(Read uncommitted)、讀提交(read committed)、可重復讀(repeatable read)和串行化(Serializable)。
持久性:事務處理結束后,對數據的修改就是永久的,即便系統故障也不會丟失。
mysql中的存儲過程
存儲過程是存儲在數據庫目錄中的一組為了完成特定功能的SQL語句集合。使用存儲過程的目的是將常用或復雜的工作預先用 SQL 語句寫好并用一個指定名稱存儲起來,這個過程經編譯和優化后存儲在數據庫服務器中,因此稱為存儲過程。當以后需要數據庫提供與已定義好的存儲過程的功能相同的服務時,只需調用“CALL存儲過程名字”即可自動完成。
常用操作數據庫的 SQL 語句在執行的時候需要先編譯,然后執行。存儲過程則采用另一種方式來執行 SQL 語句。
一個存儲過程是一個可編程的函數,它在數據庫中創建并保存,一般由 SQL 語句和一些特殊的控制結構組成。當希望在不同的應用程序或平臺上執行相同的特定功能時,存儲過程尤為合適。
MySQL 5.0 版本以前并不支持存儲過程,這使 MySQL 在應用上大打折扣。MySQL 從 5.0 版本開始支持存儲過程,既提高了數據庫的處理速度,同時也提高了數據庫編程的靈活性
存儲過程是數據庫中的一個重要功能,存儲過程可以用來轉換數據、數據遷移、制作報表,它類似于編程語言,一次執行成功,就可以隨時被調用,完成指定的功能操作。
使用存儲過程不僅可以提高數據庫的訪問效率,同時也可以提高數據庫使用的安全性。
對于調用者來說,存儲過程封裝了 SQL 語句,調用者無需考慮邏輯功能的具體實現過程。只是簡單調用即可,它可以由觸發器,其他存儲過程以及Java, Python,PHP等應用程序調用。
MySQL存儲過程的優點
通常存儲過程有助于提高應用程序的性能。一旦創建,存儲過程就會被編譯并存儲在數據庫中。但是,MySQL實現的存儲過程略有不同。MySQL存儲過程是按需編譯的。編譯存儲過程后,MySQL將其放入緩存并為每個連接維護自己的存儲過程緩存。如果應用程序在單個連接中多次使用存儲過程,則使用編譯版本,否則,存儲過程的工作方式類似于查詢。
存儲過程有助于減少應用程序和數據庫服務器之間的流量,因為應用程序必須只發送存儲過程的名稱和參數,而不是發送多個冗長的SQL語句。
存儲過程對任何應用程序都是可重用且透明的。存儲過程將數據庫接口公開給所有應用程序,以便開發人員不必開發存儲過程中已經支持的功能。
存儲過程是安全的。數據庫管理員可以為訪問數據庫中的存儲過程的應用程序授予適當的權限,而無需為基礎數據庫表提供任何權限。
感謝各位的閱讀,以上就是“mysql中事務和存儲過程指的是什么”的內容了,經過本文的學習后,相信大家對mysql中事務和存儲過程指的是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。