日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql vpformysql引擎_MySQL InnoDB引擎B+树索引简单整理说明

發布時間:2025/3/19 数据库 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql vpformysql引擎_MySQL InnoDB引擎B+树索引简单整理说明 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文出處:http://www.cnblogs.com/wy123/p/7211742.html

(保留出處并非什么原創作品權利,本人拙作還遠遠達不到,僅僅是為了鏈接到原文,因為后續對可能存在的一些錯誤進行修正或補充,無他)

MySQL中的InnoDB引擎表索引類型有一下幾種(以下所說的索引,沒有特殊說明,均指InnoDB引擎表索引。)

0 = Secondary Index,二級索引,

1 = Clustered Index,聚集索引

2 = Unique Index,唯一索引

3 = Primary Index,主鍵索引

32 = Full-text Index,全文索引

64 = Spatial Index,空間索引

128 = A secondary index that includes a virtual generated column.二級計算列索引。

其中二級索引,聚集索引,唯一索引,主鍵索引,二級計算列索引,按照邏輯存儲結構來看,都是B+樹來存儲的

這一點與其他數據庫的B+樹索引邏輯存儲結構上看,并沒有太大的不同,以上幾種索引都是從邏輯角度來劃分的。

如果從物理存儲角度來看,MySQL中的這幾類索引可以劃分為聚集索引和二級索引(或者叫非聚集索引)

其中,主鍵索引和聚集索引,可以歸類為聚集索引,二級索引,唯一索引,二級計算列索引都數據非聚集索引。

MySQL中的聚集索引

MySQL聚集索引就是根據主鍵,把整張表的數據,在邏輯上組織成一棵B+樹,因此一個表只能由一個聚集索引。

非葉子節點存儲聚集索引key值,葉子節點存儲表中的數據本身,葉子節點與葉子節點之間采用雙向鏈表的方式連接在一起。

了解MySQL的聚集索引之前,先了解一下MySQL主鍵生成機制。

MySQL的InnoDB必須有一個主鍵,

如果在建表的時候指定了主鍵,那么這個主鍵就是該表的主鍵(聽起來這么別扭,主要是跟未指定主鍵的情況下,自動生成的額主鍵作對比)

如果在建表的時候沒有指定主鍵,那么存儲引擎會自動為表上建一個主鍵列

1)對于指定了主鍵的表,主鍵生成的索引就是“主鍵索引”,

2)對于未指定主鍵的表,如果有(一個或者多個)非空的唯一索引,(第一個)非空唯一約束做主鍵

3)對于未指定主鍵的表,且沒有唯一約束的表,默認生成一個主鍵,該主鍵上生成的索引就是“聚集索引”,

實際上,前者的“主鍵索引”和后者的“聚集索引”,物理存儲上都可以歸屬為聚集索引

1,顯式主鍵索引(聚集索引)

如下截圖,創建了test_index_type_1

在建表的時候指定了主鍵,則主鍵默認生成主鍵索引,索引類型是3(從物理存儲角度看,是聚集索引)

在表創建完成之后創建了索引,生成的是二級索引,索引類型是0(從物理存儲角度看,是非聚集索引)

2,非空唯一約束生成的主鍵索引(聚集索引)

如下截圖,創建了test_index_type_2,

在建表的時候沒有指定了主鍵,但是指定了一個唯一的非空約束,那么這個字段會當做主鍵用,生成的索引類型是3(從物理存儲角度看,是聚集索引)

3,系統默認主鍵生成的聚集索引(聚集索引)

如下截圖,創建了test_index_type_3表,

在建表的時候沒有指定了主鍵,也沒有指定唯一的非空約束,InnoDB引擎會自動生成一個6字節的指針,生成的索引類型是聚集索引,類型是1(從物理存儲角度看,是聚集索引)

非聚集索引

非聚集索引,非聚集索引同樣是B+樹的結構來存儲數據的,

與聚集索引做大的差異在于非聚集索的葉子節點存儲的僅僅是索引的key值+聚集索引的key值,但是不包括所有的非索引鍵值。

1,唯一索引約束生成的唯一索引(非聚集索引)

如下截圖,創建了test_index_type_4表,

指定了id為unique的,那么會自動在id列上創建一個唯一索引。

2,手動創建的唯一索引(非聚集索引)

如下截圖,創建了test_index_type5表,

手動在創建一個唯一的索引,那么這個索引類型為唯一索引

3,手動創建的二級索引(非聚集索引)

如下截圖,創建了test_index_type6表,

那手動在創建一個的索引(未指定unique),那么這個索引類型為二級索引

4,計算列索引,在計算列上手動創建索引(非聚集索引)

如下截圖,創建了test_index_type7表,

test_index_type7上有一個計算列,創建完成之后在計算列上加索引,索引為計算列索引

總結:

整體上來看,MySQL的幾種類型的B+樹的索引還是比較容易理解的,跟SQL Server中的索引也比較類似。

MySQL的InnoDB引擎表中,主鍵索引,非空唯一約束生成的聚集索引,聚集索引,從物理存儲上看都數據聚集索引。

主鍵索引,非空唯一約束生成的聚集索引,聚集索引,三者有一個明顯的特點,都要求所在的列是非空且唯一的。

另外就是MySQL無法顯式創建聚集索引,也即create clustered index.

這一點與SQL Server有很大的不同,

1,在SQL Server中,如果沒有指定主鍵,或者指定了主鍵沒有但是指定為nonclustered,那么表就是為堆表,系統不會添加默認字段作為聚集索引

2,SQL Server的主鍵可以僅僅是主鍵,可以不是聚集索引(默認情況下主鍵是聚集索引)。

聚集索引可以指定在任意一個列上,可以是非主鍵列,可以是非唯一,可為null,可重復的列,比如如下

內容來源于網絡如有侵權請私信刪除

總結

以上是生活随笔為你收集整理的mysql vpformysql引擎_MySQL InnoDB引擎B+树索引简单整理说明的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 美女视频久久 | 久久欧| 伊人天堂网 | 岛国av片| 日韩精品大片 | 女性生殖扒开酷刑vk | av免费视屏 | 亚洲色婷婷久久精品av蜜桃 | 青春草在线视频免费观看 | 日韩一片| 不许穿内裤随时挨c调教h苏绵 | 内地毛片| 久久久www成人免费精品 | 神马影院一区二区 | 色臀| 久操热| 波多在线视频 | 日韩av高清 | 成人免费在线小视频 | 久久久社区 | 亚洲精品一区二区在线 | 一道本久在线中文字幕 | 兔费看少妇性l交大片免费 日韩高清不卡 | 国产日产精品一区二区 | 成人在线亚洲 | 成人夜间视频 | 国产精品va在线观看无码 | 成人免费黄色网址 | 超碰免费在线播放 | 国产欧美在线观看 | 绯色av一区| 自拍偷拍日韩 | 日韩女优一区 | 又黄又爽在线观看 | 国产精品久线在线观看 | 午夜影院免费视频 | 国产精品999久久久 在线青草 | 一级黄色性视频 | 无码一区二区三区免费 | 性插插视频 | 成人手机在线视频 | 亚洲剧情av | 久久国产热 | 91青青青| 国产一区二区三区免费观看视频 | 中文无码精品一区二区三区 | 日韩视频第一页 | 自拍一区在线 | 日韩黄页网站 | 伊人动漫 | 三级黄色在线播放 | 国产一区二区99 | 国产综合在线视频 | 亚洲综合99 | jizz内谢中国亚洲jizz | 国产视频一区三区 | a级片在线观看视频 | 国产又爽又猛又粗的视频a片 | 激情小说五月天 | 国产精品成久久久久三级 | 欧美熟妇另类久久久久久多毛 | 伊人久久大香 | 性高潮久久久久久久 | 美女精品| 黄色动漫在线观看 | 国产精品亚洲色图 | 啄木乌欧美一区二区三区 | 夜色快播 | 99国产精| 成人午夜福利一区二区 | 黄色免费在线观看网站 | 日韩大片在线 | 2019日韩中文字幕 | 久久二区三区 | 无码人妻aⅴ一区二区三区玉蒲团 | 美女精品 | 在线观看日本视频 | 97成人人妻一区二区三区 | 久久综合免费视频 | av一区在线| 男女www视频 | 久久九 | 狠狠爱av| 音影先锋av资源 | 国产乱码在线 | av激情四射 | av在线成人| 在线成人观看 | aaaaa级少妇高潮大片免费看 | 日批网站在线观看 | 亚洲视频在线观看一区二区三区 | 成人在线免费观看视频 | www.黄在线观看 | 老熟妻内射精品一区 | 一级艳片新婚之夜 | 精品亚洲一区二区三区四区五区 | 美痴女~美人上司北岛玲 | 特级淫片裸体免费看冫 | 国产传媒一区二区 |