mysql索引與事務筆記 資料庫筆記之索引和事務

2021-10-22 10:14:28 字數 1185 閱讀 3817

索引:

在未建立索引之前,資料庫裡的資料是按照堆來儲存的,當我們使用index關鍵字建立索引時,其在記憶體中將會變為b樹來儲存。預設建立的索引型別是非聚焦索引,當使用關鍵字clustered建立聚焦索引。乙個表只能有乙個聚焦索引,可以有多個非聚焦索引。

聚集索引決定了表資料的物理儲存順序,也就是說表的物理儲存是根據聚集索引結構進行順序儲存的,因此乙個表只能有乙個聚集索引。

除了聚集索引以外的其他索引,都稱之為非聚集索引,非聚集索引一般都是為了優化特定的查詢效率而建立的。

索引和主鍵的區別:1:主鍵是為了標識資料庫記錄唯一性,不允許記錄重複,且鍵值不能為空,主鍵也是乙個特殊索引.2:資料表中只允許有乙個主鍵,但是可以有多個索引.3.使用主鍵,資料庫會自動建立主鍵索引(預設下是聚焦索引),也可以在非主鍵上建立索引,方便查詢效率.

可以在主鍵上設定為非聚集索引,在其餘的列上設定為聚集索引。

唯一索引是指在該列中不能儲存重複的值。

索引就一種特殊的查詢表,資料庫的搜尋引擎可以利用它加速對資料的檢索。索引很類似與現實生活中書的目錄,不需要查詢整本書內容就可以找到想要的資料。缺點是它減慢了資料錄入的速度,同時也增加了資料庫的尺寸大小。

事務事務就是被繫結在一起作為乙個邏輯工作單元的sql語句分組,如果任何乙個語句操作失敗那麼整個操作就被失敗,以後操作就會回滾到操作前狀態,或者是上個節點。事務的四個屬性:acid。即原子性,一致性,隔離性和永續性。

髒讀: update table set x = x + 10 where col = a;

update table set x = x - 10 where col = b;

假設此時執行完了第乙個sql語句,此時資料庫裡面做了更新。使用者可以看到效果,但是由於某種原因,第二個sql語句執行失敗了,事務回滾此時使用者就會看到原來的效果,這就是髒讀。

事務隔離級別中的read commited可以解決髒讀現象(使用的是共享鎖),根據其名就可以看得出:提交完讀

事務還有其餘的三種隔離級別,在這裡就不說了。

鎖的粒度有哪些?

資料庫鎖:鎖定整個資料庫,這通常發生在整個資料庫模式改變的時候。

區段鎖:鎖定整個區段,因為乙個區段由8頁組成,所以區段鎖定是指鎖定控制了區段、控制了該區段內8個資料或索引頁以及這8頁中的所有資料行。

頁鎖:鎖定該頁中的所有資料或索引鍵。

行或行識別符號:雖然從技術上將,鎖是放在行識別符號上的,但是本質上,它鎖定了整個資料行。

MySQL資料庫 事務與索引

事務介紹 事務 transaction 一般是指要做的或所做的事情.在計算機術語中是指訪問並可能更新資料庫中各種資料項的乙個程式執行單元 unit 例如 去銀行取500元錢,大概有兩個步驟 第一步輸入密碼金額,銀行卡扣掉500元 第二部從atm出500元錢.這兩個步驟必須是要麼都執行要麼都不執行.如...

Jdbc筆記 資料庫與MySQL基礎

mysql的目錄結構 mysql備份與還原 什麼是資料庫?用於儲存和管理資料的倉庫 database 資料可以儲存在記憶體中,也可以儲存在硬碟中。儲存在記憶體中的資料,電腦一掉電關機,資料就丟失了 而存在硬碟上的資料,則可以持久化的儲存。資料庫的特點 可以持久化儲存資料。資料庫其實就是乙個檔案系統。...

MySQL 資料庫索引與事務的特性

索引的概念 索引是資料庫表中一列或多列的值進行排序的一種結構,使用索引可快速訪問資料庫表中的特定資訊。如果想按特定職員的性查詢他或她,則與在表中搜尋的所有行相比,索引有助於更快的獲取資訊。索引的乙個主要的目的就是加快檢索表中資料的方法,也是盡快的找到符合限制條件的記錄id的輔助資料結構 優點 通過建...