日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

Mysql中聚簇索引和非聚簇索引的區(qū)別詳解

瀏覽:46日期:2023-06-28 19:41:17
目錄聚簇索引(聚集索引)聚簇索引的優(yōu)缺點輔助索引(非聚簇索引)InnoDB索引實現(xiàn)1)主鍵索引:2)InnoDB的輔助索引MyISAM索引實現(xiàn)1)主鍵索引:2)輔助索引(Secondary key)聚簇索引和非聚簇索引的區(qū)別聚簇索引(聚集索引)

聚簇索引并不是一種單獨的索引類型,而是一種數(shù)據(jù)存儲方式。具體細節(jié)依賴于其實現(xiàn)方式。

MySQL數(shù)據(jù)庫中innodb存儲引擎,B+樹索引可以分為聚簇索引(也稱聚集索引,clustered index)和輔助索引(有時也稱非聚簇索引或二級索引,secondary index,non-clustered index)。

這兩種索引內(nèi)部都是B+樹,聚集索引的葉子節(jié)點存放著一整行的數(shù)據(jù)。

Innobd中的主鍵索引是一種聚簇索引,非聚簇索引都是輔助索引,像復(fù)合索引、前綴索引、唯一索引。

Innodb使用的是聚簇索引,MyISam使用的是非聚簇索引

聚簇索引就是按照每張表的主鍵構(gòu)造一顆B+樹,同時葉子節(jié)點中存放的就是整張表的行記錄數(shù)據(jù),也將聚集索引的葉子節(jié)點稱為數(shù)據(jù)頁。這個特性決定了索引組織表中數(shù)據(jù)也是索引的一部分,每張表只能擁有一個聚簇索引。

Innodb通過主鍵聚集數(shù)據(jù),如果沒有定義主鍵,innodb會選擇非空的唯一索引代替。如果沒有這樣的索引,innodb會隱式的定義一個主鍵來作為聚簇索引。

聚簇索引的優(yōu)缺點

優(yōu)點:

數(shù)據(jù)訪問更快,因為聚簇索引將索引和數(shù)據(jù)保存在同一個B+樹中,因此從聚簇索引中獲取數(shù)據(jù)比非聚簇索引更快聚簇索引對于主鍵的排序查找和范圍查找速度非常快

缺點:

插入速度嚴重依賴于插入順序,按照主鍵的順序插入是最快的方式,否則將會出現(xiàn)頁分裂,嚴重影響性能。因此,對于InnoDB表,我們一般都會定義一個自增的ID列為主鍵更新主鍵的代價很高,因為將會導(dǎo)致被更新的行移動。因此,對于InnoDB表,我們一般定義主鍵為不可更新。二級索引訪問需要兩次索引查找,第一次找到主鍵值,第二次根據(jù)主鍵值找到行數(shù)據(jù)。輔助索引(非聚簇索引)

在聚簇索引之上創(chuàng)建的索引稱之為輔助索引,輔助索引訪問數(shù)據(jù)總是需要二次查找。輔助索引葉子節(jié)點存儲的不再是行的物理位置,而是主鍵值。通過輔助索引首先找到的是主鍵值,再通過主鍵值找到數(shù)據(jù)行的數(shù)據(jù)頁,再通過數(shù)據(jù)頁中的Page Directory找到數(shù)據(jù)行。

Innodb輔助索引的葉子節(jié)點并不包含行記錄的全部數(shù)據(jù),葉子節(jié)點除了包含鍵值外,還包含了相應(yīng)行數(shù)據(jù)的聚簇索引鍵。

輔助索引的存在不影響數(shù)據(jù)在聚簇索引中的組織,所以一張表可以有多個輔助索引。在innodb中有時也稱輔助索引為二級索引。

InnoDB索引實現(xiàn)

InnoDB也使用B+Tree作為索引結(jié)構(gòu),但具體實現(xiàn)方式卻與MyISAM截然不同.

1)主鍵索引:

MyISAM索引文件和數(shù)據(jù)文件是分離的,索引文件僅保存數(shù)據(jù)記錄的地址。而在InnoDB中,表數(shù)據(jù)文件本身就是按B+Tree組織的一個索引結(jié)構(gòu),這棵樹的葉節(jié)點data域保存了完整的數(shù)據(jù)記錄。這個索引的key是數(shù)據(jù)表的主鍵,因此InnoDB表數(shù)據(jù)文件本身就是主索引。

(圖inndb主鍵索引)是InnoDB主索引(同時也是數(shù)據(jù)文件)的示意圖,可以看到葉節(jié)點包含了完整的數(shù)據(jù)記錄。這種索引叫做聚集索引。因為InnoDB的數(shù)據(jù)文件本身要按主鍵聚集,所以InnoDB要求表必須有主鍵(MyISAM可以沒有),如果沒有顯式指定,則MySQL系統(tǒng)會自動選擇一個可以唯一標識數(shù)據(jù)記錄的列作為主鍵,如果不存在這種列,則MySQL自動為InnoDB表生成一個隱含字段作為主鍵,這個字段長度為6個字節(jié),類型為長整形。

2)InnoDB的輔助索引

InnoDB的所有輔助索引都引用主鍵作為data域。例如,下圖為定義在Col3上的一個輔助索引:

InnoDB 表是基于聚簇索引建立的。因此InnoDB 的索引能提供一種非常快速的主鍵查找性能。不過,它的輔助索引(Secondary Index, 也就是非主鍵索引)也會包含主鍵列,所以,如果主鍵定義的比較大,其他索引也將很大。如果想在表上定義 、很多索引,則爭取盡量把主鍵定義得小一些。InnoDB 不會壓縮索引。

文字符的ASCII碼作為比較準則。聚集索引這種實現(xiàn)方式使得按主鍵的搜索十分高效,但是輔助索引搜索需要檢索兩遍索引:首先檢索輔助索引獲得主鍵,然后用主鍵到主索引中檢索獲得記錄。

不同存儲引擎的索引實現(xiàn)方式對于正確使用和優(yōu)化索引都非常有幫助,例如知道了InnoDB的索引實現(xiàn)后,就很容易明白1、為什么不建議使用過長的字段作為主鍵,因為所有輔助索引都引用主索引,過長的主索引會令輔助索引變得過大。再例如,2、用非單調(diào)的字段作為主鍵在InnoDB中不是個好主意,因為InnoDB數(shù)據(jù)文件本身是一顆B+Tree,非單調(diào)的主鍵會造成在插入新記錄時數(shù)據(jù)文件為了維持B+Tree的特性而頻繁的分裂調(diào)整,十分低效,而使用自增字段作為主鍵則是一個很好的選擇。

InnoDB使用的是聚簇索引,將主鍵組織到一棵B+樹中,而行數(shù)據(jù)就儲存在葉子節(jié)點上,若使用"where id = 14"這樣的條件查找主鍵,則按照B+樹的檢索算法即可查找到對應(yīng)的葉節(jié)點,之后獲得行數(shù)據(jù)。若對Name列進行條件搜索,則需要兩個步驟:第一步在輔助索引B+樹中檢索Name,到達其葉子節(jié)點獲取對應(yīng)的主鍵。第二步使用主鍵在主索引B+樹種再執(zhí)行一次B+樹檢索操作,最終到達葉子節(jié)點即可獲取整行數(shù)據(jù)。

MyISAM索引實現(xiàn)

MyISAM索引文件和數(shù)據(jù)文件是分離的,索引文件僅保存數(shù)據(jù)記錄的地址

1)主鍵索引:

MyISAM引擎使用B+Tree作為索引結(jié)構(gòu),葉節(jié)點的data域存放的是數(shù)據(jù)記錄的地址。下圖是MyISAM主鍵索引的原理圖:

這里設(shè)表一共有三列,假設(shè)我們以Col1為主鍵,圖myisam1是一個MyISAM表的主索引(Primary key)示意。可以看出MyISAM的索引文件僅僅保存數(shù)據(jù)記錄的地址。

2)輔助索引(Secondary key)

在MyISAM中,主索引和輔助索引(Secondary key)在結(jié)構(gòu)上沒有任何區(qū)別,只是主索引要求key是唯一的,而輔助索引的key可以重復(fù)。如果我們在Col2上建立一個輔助索引,則此索引的結(jié)構(gòu)如下圖所示:

同樣也是一顆B+Tree,data域保存數(shù)據(jù)記錄的地址。因此,MyISAM中索引檢索的算法為首先按照B+Tree搜索算法搜索索引,如果指定的Key存在,則取出其data域的值,然后以data域的值為地址,讀取相應(yīng)數(shù)據(jù)記錄。

MyISAM的索引方式也叫做“非聚集”的,之所以這么稱呼是為了與InnoDB的聚集索引區(qū)分。

MyISM使用的是非聚簇索引,非聚簇索引的兩棵B+樹看上去沒什么不同,節(jié)點的結(jié)構(gòu)完全一致只是存儲的內(nèi)容不同而已,主鍵索引B+樹的節(jié)點存儲了主鍵,輔助鍵索引B+樹存儲了輔助鍵。表數(shù)據(jù)存儲在獨立的地方,這兩顆B+樹的葉子節(jié)點都使用一個地址指向真正的表數(shù)據(jù),對于表數(shù)據(jù)來說,這兩個鍵沒有任何差別。由于索引樹是獨立的,通過輔助鍵檢索無需訪問主鍵的索引樹。

為了更形象說明這兩種索引的區(qū)別,我們假想一個表如下圖存儲了4行數(shù)據(jù)。其中Id作為主索引,Name作為輔助索引。圖示清晰的顯示了聚簇索引和非聚簇索引的差異。

問題:主鍵索引是聚集索引還是非聚集索引?

在Innodb下主鍵索引是聚集索引,在Myisam下主鍵索引是非聚集索引

聚簇索引和非聚簇索引的區(qū)別

聚簇索引的葉子節(jié)點存放的是主鍵值和數(shù)據(jù)行,支持覆蓋索引;二級索引的葉子節(jié)點存放的是主鍵值或指向數(shù)據(jù)行的指針。

由于節(jié)子節(jié)點(數(shù)據(jù)頁)只能按照一顆B+樹排序,故一張表只能有一個聚簇索引。輔助索引的存在不影響聚簇索引中數(shù)據(jù)的組織,所以一張表可以有多個輔助索引

到此這篇關(guān)于Mysql中聚簇索引和非聚簇索引的區(qū)別詳解的文章就介紹到這了,更多相關(guān)Mysql聚簇索引和非聚簇索引內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲性视频在线| 日韩精品不卡一区二区| 特黄特色欧美大片| 国产综合欧美| 最新国产精品久久久| 欧美亚洲三级| 久久99国产精品视频| 国产成人精品亚洲日本在线观看| 亚洲91视频| 国产精品日韩欧美一区| 亚洲一二av| 欧美精品中文| 久久中文字幕一区二区三区| 福利在线免费视频| 黄色亚洲免费| 日韩精品乱码av一区二区| 国产激情综合| 国产99久久| 日韩精品亚洲aⅴ在线影院| 免费看一区二区三区| 久久久久久久久丰满| 婷婷亚洲成人| 97欧美在线视频| 日韩中文字幕91| 国产精品亲子伦av一区二区三区 | 久久国产高清| 国产一级成人av| 日韩免费福利视频| 亚洲乱码视频| 久久久久免费| 蜜臀av国产精品久久久久| 国产精品qvod| 欧美在线资源| 国产亚洲久久| 2023国产精品久久久精品双| 日韩在线电影| 久久精品1区| 日本视频一区二区| 日韩国产网站| 天堂俺去俺来也www久久婷婷| 精品国产亚洲一区二区三区在线 | 99久久九九| 国产精品任我爽爆在线播放| 亚洲一级网站| 麻豆国产精品视频| 免费人成精品欧美精品| 亚洲国产欧美日本视频| 亚欧成人精品| 日韩三区在线| 麻豆国产欧美一区二区三区| 一区二区自拍| 国产一区二区三区国产精品| 国产视频一区三区| 国产一区二区视频在线看| 免费高清在线一区| 欧美三级网址| 久久99精品久久久野外观看| 亚洲作爱视频| 日韩不卡视频在线观看| 麻豆精品av| 欧美久久精品| 亚洲一区二区日韩| 亚洲高清av| 不卡专区在线| 欧美国产日韩电影| 99视频精品| 日韩三区免费| 精品国产a一区二区三区v免费| 人人精品人人爱| 红桃视频国产一区| 欧美亚洲国产激情| 国产日韩电影| 国产成人免费av一区二区午夜| 欧美日本二区| 亚洲三级网站| 久久高清国产| 免费日韩精品中文字幕视频在线| 久久九九精品| 日韩在线看片| 一本大道色婷婷在线| 色一区二区三区四区| 欧美激情久久久久久久久久久| 日韩中文字幕一区二区高清99| 国产真实久久| 亚洲手机视频| 99久久亚洲精品蜜臀| 国产精品久久久久久久免费观看| 欧美激情99| 精品国产中文字幕第一页| 国产黄色精品| 国产中文字幕一区二区三区| 成人在线视频免费看| 久久精品免费看| 中文一区一区三区高中清不卡免费| 麻豆高清免费国产一区| 久久69成人| 国产一二在线播放| 亚洲国产专区| 午夜久久黄色| 久久国产99| 日本精品国产| 国产精品115| 国模精品一区| 日本蜜桃在线观看视频| 欧美三区四区| 在线综合视频| 中文字幕亚洲精品乱码| 日韩动漫一区| 国产高清日韩| 欧洲亚洲一区二区三区| 欧美午夜不卡| 日本在线不卡视频| 国产精品亚洲欧美日韩一区在线| 18国产精品| 国产成人精品一区二区免费看京 | 亚洲精品日本| 国产欧美日本| 欧美黑人做爰爽爽爽| 国产欧洲在线| 亚洲一区日本| 欧美色综合网| 高清一区二区三区| 亚洲a一区二区三区| 久久av在线| 国产精品欧美三级在线观看 | 亚洲免费成人| 日本电影久久久| 三上亚洲一区二区| av不卡在线看| 国产精东传媒成人av电影| 日韩在线观看一区| 蜜臀a∨国产成人精品| 国产欧美一区二区精品久久久| 精品一区二区三区的国产在线观看| 色88888久久久久久影院| 亚洲制服一区| 91视频一区| 亚洲视频国产精品| 国产成人精品福利| 蜜桃久久av一区| 精品国产乱码久久久久久樱花| 99成人在线视频| 日韩av在线播放中文字幕| 欧美gv在线| 欧美精品三级在线| 99久久视频| 美女精品视频在线| 一区在线免费观看| 国产精品v日韩精品v欧美精品网站| 欧美成a人国产精品高清乱码在线观看片在线观看久 | 日本成人在线不卡视频| 亚洲黄色网址| 日韩一区二区三免费高清在线观看 | 国产日韩欧美| 99视频在线精品国自产拍免费观看| 国产亚洲久久| 香蕉久久国产| 久久婷婷亚洲| 精品香蕉视频| 久久福利一区| 成人精品亚洲| 精品国产99| 国产欧美日韩影院| 国产一级一区二区| 青青青免费在线视频| 国产精品嫩草影院在线看| 一区视频在线| 91精品亚洲| 久久男人av资源站| 国产乱人伦精品一区| 日韩在线卡一卡二| 99精品视频在线| 国产精品麻豆久久| 麻豆极品一区二区三区| 最新亚洲国产| 午夜在线一区| 午夜精品免费| 久久婷婷av| 麻豆视频在线看| 麻豆国产精品777777在线| 日韩亚洲精品在线观看| 久久亚洲美女| 美女少妇全过程你懂的久久| 四虎8848精品成人免费网站| 国产另类在线| 国产乱人伦丫前精品视频 | 日韩三区四区| 亚洲制服欧美另类| 九一精品国产| 一区二区三区视频免费观看| 成人亚洲欧美| 日韩伦理一区| 日韩欧美少妇| 91精品精品| 国产综合精品一区| 欧美成人综合| 99re国产精品| 亚洲伊人精品酒店| 免费久久精品视频| 亚洲欧美日韩国产综合精品二区|