Innodb存储引擎——非聚集索引
如果給表定義了主鍵,那么表在磁盤上的存儲(chǔ)結(jié)構(gòu)就由整齊排列的結(jié)構(gòu)轉(zhuǎn)變成了樹(shù)狀結(jié)構(gòu),也就是「平衡樹(shù)」結(jié)構(gòu),換句話說(shuō),就是整個(gè)表就變成了一個(gè)索引,這就是所謂的「聚集索引」。 這就是為什么一個(gè)表只能有一個(gè)主鍵, 一個(gè)表只能有一個(gè)「聚集索引」,因?yàn)橹麈I的作用就是把「表」的數(shù)據(jù)格式轉(zhuǎn)換成「索引(平衡樹(shù))」的格式放置。
非聚集索引和聚集索引一樣, 同樣是采用平衡樹(shù)作為索引的數(shù)據(jù)結(jié)構(gòu)。假如給user表的name字段加上索引 , 那么索引就是由name字段中的值構(gòu)成,在數(shù)據(jù)改變時(shí), DBMS需要一直維護(hù)索引結(jié)構(gòu)的正確性。如果給表中多個(gè)字段加上索引 , 那么就會(huì)出現(xiàn)多個(gè)獨(dú)立的索引結(jié)構(gòu),每個(gè)索引(非聚集索引)互相之間不存在關(guān)聯(lián)。?
非聚集索引和聚集索引的區(qū)別在于, 通過(guò)聚集索引可以查到需要查找的數(shù)據(jù), 而通過(guò)非聚集索引可以查到記錄對(duì)應(yīng)的主鍵值 , 再使用主鍵的值通過(guò)聚集索引查找到需要的數(shù)據(jù)。不管以任何方式查詢表, 最終都會(huì)利用主鍵通過(guò)聚集索引來(lái)定位到數(shù)據(jù), 聚集索引(主鍵)是通往真實(shí)數(shù)據(jù)所在的唯一路徑。
但是也可以根據(jù)查詢的結(jié)果建立復(fù)合索引或者多字段索引查詢,為一個(gè)索引指定多個(gè)字段, 那么這個(gè)多個(gè)字段的內(nèi)容都會(huì)被同步至索引之中,能加快查詢的速度。另外,復(fù)合索引的屬性順序也會(huì)影響到查詢的速度,具體較為優(yōu)化的順序要根據(jù)具體數(shù)據(jù)分布。
參考鏈接:
https://www.cnblogs.com/lykbk/p/wererereredfdf.html
https://zhuanlan.zhihu.com/p/23624390?utm_source=wechat_session&utm_medium=social
轉(zhuǎn)載于:https://www.cnblogs.com/LinsenLi/p/9596488.html
總結(jié)
以上是生活随笔為你收集整理的Innodb存储引擎——非聚集索引的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 光大京东小白卡有年费吗?银联版&
- 下一篇: 杂项:E-Learning