資料庫事務和索引

2022-03-14 06:25:39 字數 1617 閱讀 7609

事務的性質:

原子性:同乙個事務中的所有操作要不然全部成功要不然全部失敗

一致性:一致性是指事務必須使資料庫從乙個一致性狀態變換到另乙個一致性狀態,,也就是說乙個事務執行之前和執行之後都必須處於一致性狀態。

隔離性:隔離性是當多個使用者併發訪問資料庫時,比如操作同一張表時,資料庫為每乙個使用者開啟的事務,不能被其他事務的操作所干擾,多個併發事務之間要相互隔離。

永續性:永續性是指乙個事務一旦被提交了,那麼對資料庫中的資料的改變就是永久性的

不考慮事務的隔離性會出現的問題:

髒讀:髒讀是指在乙個事務處理過程裡讀取了另乙個未提交的事務中的資料。

不可重複讀:不可重複讀是指在對於資料庫中的某個資料,乙個事務範圍內多次查詢卻返回了不同的資料值,這是由於在查詢間隔,被另乙個事務修改並提交了。

虛度:例如事務t1對乙個表中所有的行的某個資料項做了從「1」修改為「2」的操作,這時事務t2又對這個表中插入了一行資料項,而這個資料項的數值還是為「1」並且提交給資料庫。而操作事務t1的使用者如果再檢視剛剛修改的資料,會發現還有一行沒有修改,其實這行是從事務t2中新增的,就好像產生幻覺一樣,這就是發生了幻讀。

事務的隔離級別:

serializable (序列化):可避免髒讀、不可重複讀、幻讀的發生

repeatable read (可重複讀):可避免髒讀、不可重複讀的發生

read committed (讀已提交):可避免髒讀的發生

read uncommitted (讀未提交):最低級別,任何情況都無法保證

索引

資料庫中索引的作用是用來加快查詢速度,原理是將表中建立索引列的資料獨立出來用特殊的資料結構儲存,(如b-tree,hash),資料庫實現通常使用b樹和b+樹

索引相當於字典的目錄,可以通過查詢目錄來得到我們所需要的資料所在的位置,而不需要翻整本字典.

使用索引需要注意的問題

索引會帶來額外的開銷,額外的儲存空間,額外的建立時間,額外維護時間,所以要選擇適合的情況去建立索引

索引的型別

1. 普通索引:普通索引允許被索引的資料列包含重複的值。

2. 唯一索引:被索引包含的資料列不允許有相同的值, 可以包含null     

3. 主鍵索引:主鍵建立的索引,唯一且不能為空,

4. 全文索引(mysql):

5. 聚集索引 : 該索引中鍵值的邏輯順序決定了表中相應行的物理順序。 (比如字典的按照拼音查詢    邏輯順序和物理順序一致),乙個表中只能有乙個聚集索引

6. 非聚集索引 :  該索引中索引的邏輯順序與磁碟上行的物理儲存順序不同。(比如字典中的按部首查詢    乙個字可能在54頁有可能在554頁)(mysql中沒有)

適合建立索引的字段:

1. 經常搜尋

2. 經常排序

3. 經常跟在where語句後面

4. 資料型別小

5. 簡單資料型別

6. 列中盡量避免null

MySQL資料庫 索引和事務

1.概念 索引是一種特殊的檔案,包含著對資料表裡所有記錄的引用指標,可以對錶中的一列或多列建立索引,並指定索引的型別,各類索引有各自的資料結構實現 乙個表可以有多個唯一索引 該欄位沒有重複值,但可以有乙個空值 2.作用 資料庫中索引的作用就相當於書籍的目錄,可用於快速定位,檢索資料.索引對於提高資料...

資料庫索引事務相關

一 概念 索引是一種特殊的檔案,包含著對資料表裡所有記錄的引用指標。可以對錶中的一列或多列建立索引,並指定索引的型別,各類索引有各自的資料結構實現。二 作用 資料庫中的表 資料 索引之間的關係,類似於書架上的圖書 書籍內容和書籍目錄的關係。索引所起的作用類似書籍目錄,可用於快速定位 檢索資料。索引對...

資料庫 索引 事務總結

一 索引 1 什麼是索引 索引是一種特殊的資料庫結構,它包含著對資料表裡所有記錄的引用指標,根據這個指標我們就可以找到這個指標所對應的記錄。可以對錶中的一列或多列建立索引,並指定索引的型別,各類索引有各自的資料結構實現。從某種程度上說,索引就相當於一本書的目錄,根據這個目錄中所寫的頁碼我們就能更快的...