1、查詢:
唯一索引查到滿足條件的資料後直接返回
普通索引查到滿足條件的資料後會繼續匹配下一行是否滿足條件
2、寫唯一索引:需要判斷是否重複,需要將對應的頁從磁碟載入的記憶體中
普通索引:普通索引使用change buffer(占用buffer pool的空間),直接將更新寫入到buffer中,不用讀盤
3、change buffer vs redo log
change buffer:更改記錄直接寫入記憶體中,不用從記憶體中取出對應的資料頁 降低了隨機讀的消耗
redo log :更新時直接順序寫入磁碟,避免隨機寫的效能消耗
4、redo log buffer 會導致mysql 偶爾抖一抖
---redo log 寫滿後需要flush髒頁
--buffer 不足需要flush髒頁
普通索引 唯一索引 區別
分析唯一索引和普通索引在查詢語句和更新語句中的效能影響。假設執行以下語句 select id from t where k 5這個查詢語句在索引樹上查詢的過程,先是通過 b 樹從樹根開始,按層搜尋到葉子節點,然後可以在資料頁內部通過二分法來定位記錄。以上看起來唯一索引比普通索引少了一步判斷,其實帶來...
MySQL 普通索引和唯一索引的區別詳解
普通索引可重複,唯一索引和主鍵一樣不能重複。唯一索引可作為資料的乙個合法驗證手段,例如學生表的身份證號碼字段,我們人為規定該欄位不得重複,那麼就使用唯一索引。一般設定學號字段為主鍵 主鍵保證資料庫裡面的每一行都是唯一的,比如身份證,學號等,在表中要求唯一,不重複。唯一索引的作用跟主鍵的作用一樣。不同...
主索引 普通索引 候選索引 唯一索引
1.普通索引 普通索引 由關鍵字key或index定義的索引 唯一的任務是加快對資料的訪問速度。因此,應該只為那些最經常出現在查詢條件 wherecolumn 或排序條件 orderbycolumn 中的資料列建立索引 2.唯一索引 在某個資料列只包含彼此不同的值,在為這個資料列建立索引時就應該用關...