欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報邀請碼778899分享:數據庫 MySQL的索引

柚子快報邀請碼778899分享:數據庫 MySQL的索引

http://yzkb.51969.com/

? ??????個人主頁:五敷有你? ? ??

??系列專欄:面經

??穩(wěn)中求進,曬太陽

索引的概述

????????索引(index)是幫助MySQL高效獲取數據的數據結構(有序)。在數據之外,數據庫系統(tǒng)還維護著滿足 特定查找算法的數據結構,這些數據結構以某種方式引用(指向)數據, 這樣就可以在這些數據結構 上實現(xiàn)高級查找算法,這種數據結構就是索引。

假如我們要執(zhí)行的SQL語句為 : select * from user where age = 45;

1). 無索引情況

在無索引情況下,就需要從第一行開始掃描,一直掃描到最后一行,我們稱之為 全表掃描,性能很 低。

2). 有索引情況

如果我們針對于這張表建立了索引,假設索引結構就是二叉樹,那么也就意味著,會對age這個字段建 立一個二叉樹的索引結構。

此時我們在進行查詢時,只需要掃描三次就可以找到數據了,極大的提高的查詢的效率。

索引結構

概述

MySQL的索引是在存儲引擎層實現(xiàn)的,不同的存儲引擎有不同的索引結構,主要包含以下幾種:

上述是MySQL中所支持的所有的索引結構,接下來,我們再來看看不同的存儲引擎對于索引結構的支持 情況。

我們平常所說的索引,如果沒有特別指明,都是指B+樹結構組織的索引。

B+Tree

B+Tree是B-Tree的變種,我們以一顆最大度數(max-degree)為4(4階)的b+tree為例,來看一 下其結構示意圖:

我們可以看到,兩部分:

綠色框框起來的部分,是索引部分,僅僅起到索引數據的作用,不存儲數據。

紅色框框起來的部分,是數據存儲部分,在其葉子節(jié)點中要存儲具體的數據。

上述我們所看到的結構是標準的B+Tree的數據結構,接下來,我們再來看看MySQL中優(yōu)化之后的 B+Tree。

MySQL索引數據結構對經典的B+Tree進行了優(yōu)化。在原B+Tree的基礎上,增加一個指向相鄰葉子節(jié)點 的鏈表指針,就形成了帶有順序指針的B+Tree,提高區(qū)間訪問的性能,利于排序。

Hash

MySQL中除了支持B+樹索引,還支持一種索引 Hash索引。

1). 結構

????????哈希索引就是采用一定的hash算法,將鍵值換算成新的hash值,映射到對應的槽位上,然后存儲在 hash表中。

????????如果兩個(或多個)鍵值,映射到一個相同的槽位上,他們就產生了hash沖突(也稱為hash碰撞),可 以通過鏈表來解決。

2)特點:

Hash索引只能對等比較(=,in) ,不支持范圍查詢(between , > , < , 。。)

無法利用索引完成排序操作。

查詢效率高,通常在不存在hash沖突的情況下,只需要檢索一次。

3)存儲引擎支持:

支持hash索引的是Memory存儲引擎。 而InnoDB中具有自適應hash功能,hash索引是 InnoDB存儲引擎根據B+Tree索引在指定條件下自動構建的。

索引的分類

索引的分類

在MySQL數據庫,將索引的具體類型主要分為以下幾類:主鍵索引、唯一索引、常規(guī)索引、全文索引。

聚集索引和二級索引

而在在InnoDB存儲引擎中,根據索引的存儲形式,又可以分為以下兩種:

聚集索引選取規(guī)則:

如果存在主鍵,主鍵就是聚集索引。

如果不存在主鍵,將使用第一個唯一索引作為聚集索引。

如果沒有主鍵和唯一索引。innodb則會自動生成一個rowid作為隱藏的聚簇索引。

聚集索引和二級索引的具體結構如下:

接下來,我們來分析一下,當我們執(zhí)行如下的SQL語句時,具體的查找過程是什么樣子的。

具體過程是:

由于是name創(chuàng)建的二級索引,使用name的值進行匹配,但在二級索引中只找到arm的id,

由于查詢返回的數據是* ,所以還需要根據主鍵值10。到聚集索引中查找10對應的記錄,最終找到10對應的行row。

最終拿到這一行的數據,直接返回。

回表查詢: 這種先到二級索引中查找數據,找到主鍵值,然后再到聚集索引中根據主鍵值,獲取 數據的方式,就稱之為回表查詢。

柚子快報邀請碼778899分享:數據庫 MySQL的索引

http://yzkb.51969.com/

相關文章

評論可見,查看隱藏內容

本文內容根據網絡資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。

轉載請注明,如有侵權,聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/18895430.html

發(fā)布評論

您暫未設置收款碼

請在主題配置——文章設置里上傳

掃描二維碼手機訪問

文章目錄