MySQL聚簇索引的實(shí)際應(yīng)用于結(jié)構(gòu)描述
以下的文章主要介紹的是高性能的MySQL索引策略之MySQL聚簇索引(Clustered Indexes),我們大家都知道MySQL聚簇索引(Clustered Indexes),在實(shí)際應(yīng)用中比例還是占有一定的比例的,下面就是文章對(duì)其具體內(nèi)容描述。
MySQL聚簇索引保證關(guān)鍵字的值相近的元組存儲(chǔ)的物理位置也相同(所以字符串類型不宜建立聚簇索引,特別是隨機(jī)字符串,會(huì)使得系統(tǒng)進(jìn)行大量的移動(dòng)操作),且一個(gè)表只能有一個(gè)聚簇索引。因?yàn)橛纱鎯?chǔ)引擎實(shí)現(xiàn)索引,所以,并不是所有的引擎都支持聚簇索引。目前,只有solidDB和InnoDB支持。
聚簇索引的結(jié)構(gòu)大致如下:
注:葉子頁面包含完整的元組,而內(nèi)節(jié)點(diǎn)頁面僅包含索引的列(索引的列為整型)。一些DBMS允許用戶指定聚簇索引,但是MySQL的存儲(chǔ)引擎到目前為止都不支持。InnoDB對(duì)主鍵建立聚簇索引。如果你不指定主鍵,InnoDB會(huì)用一個(gè)具有唯一且非空值的索引來代替。
如果不存在這樣的索引,InnoDB會(huì)定義一個(gè)隱藏的主鍵,然后對(duì)其建立聚簇索引。一般來說,DBMS都會(huì)以聚簇索引的形式來存儲(chǔ)實(shí)際的數(shù)據(jù),它是其它二級(jí)索引的基礎(chǔ)。
以上的相關(guān)內(nèi)容就是對(duì)MySQL聚簇索引的介紹,望你能有所收獲。
【編輯推薦】