mysql資料庫有三個非常重要的概念,分別是索引、事務、鎖。這些也都是面試中的熱點問題,在此做以總結,也方便面試前的回顧。
簡單來說,索引是一種排好序的資料結構。這裡面包含兩個資訊,乙個是索引是排好序的,另乙個是索引本質上是一種資料結構。
innodb和mysiam兩種儲存引擎索引的儲存方式是不同的,innodb採用的是聚簇索引,而mysiam採用的是非聚簇索引。
事務的四大特性acid
事務的隔離級別
mvcc
mvcc是多版本併發控制,主要是依靠聚簇索引中的兩個隱藏列和undo log日誌來實現的,多個事務每次對某條記錄修改的時候都會生成對應的undo log,每一條undo log中也有兩個必要的屬性,分別是生成該日誌的事務id和乙個指向上乙個版本的日誌的指標。事務對記錄進行查詢的時候,就需要遍歷版本鏈,在版本鏈上找出自己可見的版本,這個需要借助readview,readview維護著當前系統中還活躍的事務id的乙個列表。那就需要判斷一下trx_id屬性值是不是在m_ids列表中,如果在,說明建立readview時生成該版本的事務還是活躍的,該版本不可以被訪問;如果不在,說明建立readview時生成該版本的事務已經被提交,該版本可以被訪問。讀已提交和可重複讀的區別就在於生成readview的時機不同,讀已提交是在每次select都會生成乙個readview,而可重複讀是在第一次select之前生成乙個readview,之後再也不生成了。
mysql索引和事務 MySql索引和事務
mysqlde 索引 目的 是為了加快查詢的速度,避免順序查詢,但是拖慢了插入和刪除的速度.應用在在經常查詢,很少少出插入的場景中.結構 b 樹,n叉搜尋樹,使用鏈式的結構把每一層的節點連線在一起,葉子節點中儲存資料,非葉子節點輔助查詢.主鍵索引和其他索引的不一樣 主鍵索引葉子節點儲存一條一條的資料...
索引和事務
索引 避免進行遍歷,優化查詢速度 相當於一本書的目錄,幫助我們快速找到想要的記錄,如果沒有索引的話,此時查詢方式就是順序遍歷,資料結構中,啥樣的資料結構查詢的速度快呢?雜湊表 二叉搜尋樹 索引讓我們避免出現順序遍歷的情況,但是用雜湊作為索引,是不太可行的,像where id 10,用hash是完全可...
索引和事務
一 索引 1 索引簡介 什麼是索引?一般的應用系統,讀寫比例在 10 1 左右,而且插入操作和一般的更新操作很少出現效能問題,在生產環境 中,我們遇到最多的,也是最容易出問題的,還是一些複雜的查詢操作,因此對查詢語句的優化顯然是重中之重。說起加速查詢,就不得不提到索引了。為什麼要有索引?索引在 my...