事務時訪問並可能更新資料庫中各種資料項的乙個程式執行單元。是乙個完整的業務邏輯單元事務不可以再分割:和事務相關的語句只有dml語句。
/*資料庫主要分為五大模組:
1.dql:資料查詢語言(凡是select語句都是)
2.dml:資料操作語言(對錶內的資料進行增、刪、改)
3.ddl:資料定義語言(庫和表的定義和刪除)
4.tcl:事務控制語言(commit提交事務,rollback回滾事務)
5.dcl:資料控制語言(grant授權。revoke收回系統許可權)
*/事務的作用:為了保證資料的完整性,安全性。
原理:多條dml語句組合,要麼同時成功,要麼同時失敗。
事務的特性: (1)a 原子性:不可分。 atomicity
(2)c 一致性:多條語句同時成功,同時失敗 consistency
(3) i 隔離性:事務a和事務b互不干擾。 isolation
(4) d 永續性:最終資料必須持久化到硬碟檔案中,才算成功。 durability
未提交讀:允許乙個事務讀取另外乙個事務沒有提交的資料。會引發髒讀。
2)讀已提交:乙個事務只能讀取另外乙個事務已經提交的資料。克服了髒讀。但是會出現不可重複讀。
3)可重複讀:解決了不可重複讀,出現幻讀。
4)序列化:要求所有的sql都會按照順序執行。(該級別保證了資料的一致性,解決事務併發的所有問題)
mysql的預設隔離級別:可重複讀(**別)。oracle的預設隔離級別是讀已提交(二級別)
**髒讀:**事務b讀取到了事務a操作的資料,但是還未提交
**不可重複讀:**指在乙個事務內多次讀同乙個資料。在這個事務還沒有結束時,另乙個事務也訪問該資料。那麼,在第乙個事務中的兩次讀資料之間,由於第二個事務的修改導致第乙個事務兩次讀取的資料可能不太一樣。就發生了在乙個事務內兩次讀到的資料不一樣的情況,因此稱為不可重複讀。
幻讀:事務a讀取了幾行資料,接著另乙個併發事務b插入了一些資料。在隨後的查詢中,第乙個事務a就會發現多了一些原本不存在的記錄,就像產生了幻覺一樣。稱為幻讀
note:不可重**生在修改操作上
幻讀發生在插入操作上,也即是說,插入資料了才會導致幻讀。
1.通過 show status 命令了解各種sql的執行頻率
2. 定位執行效率較低的sql語句
3. 通過explain分析低效sql的執行計畫
4. 通過 show profile 分析sql
5. 通過trace分析 優化器 如何選擇執行計畫
6. 確定問題並採取相應的優化措施
詳細內容請看[
備戰秋招 vlan
答 洪範範圍 讓pc1發廣播包,在其他pc上抓包,如果能夠抓到來自pc1的包則在同一廣播域 當交換機的介面被劃入vlan後,只會洪氾至相同vlan的介面 基於資料幀中的目標mac位址,來查詢本地的mac位址表,之後基於表中的記錄單播 到對應的介面中 資料幀進入交換機時,首先檢視源mac,然後將對應的...
備戰秋招 堆排序
public class heapsort 交換heap堆中i索引和j索引處的值 private static void exch comparable heap,int i,int j 根據原陣列source,構造出堆heap private static void createheap comp...
2021秋招 MySQL索引相關知識
1 區域性性原理 1 空間區域性性 發現程式和資料的訪問都有聚集成群的傾向,在乙個時間段內,僅使用其中一小部分。2 時間區域性性 最近訪問過的程式 和資料,很快又被訪問的可能性很大。2 磁碟預讀 一般比如要讀取字元a,不僅會讀取字元a,會訪問a在內的一塊資料。一般預讀的長度為頁的資料 note 咋許...