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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

主码索引、聚集索引、非主码索引(辅助索引)、唯一索引、外键索引、复合索引、非主码索引、聚集主码(聚集索引)、单列索引、多列索引、普通索引等...

發布時間:2025/4/14 编程问答 13 豆豆

?   強烈建議看了第一個參考文獻再來看這個篇博文,因為此處不準備講底層數據結構的實現。

?  索引:索引(Index)是幫助MySQL高效獲取數據的數據結構。提取句子主干,就可以得到索引的本質:索引是數據結構。其表達的是存儲引擎的范疇,也就是說只有在存儲引擎級別談索引才有意義。MyISAM、InnoDB、Memory等。此處單純就InnoDB存儲引擎討論。

  需要提前掌握B-TREE、B+TREE數據結構。注意B+樹“掃庫”的功能。

  在數據之外,數據庫系統還維護著滿足特定查找算法的數據結構,這些數據結構以某種方式引用(指向)數據,這樣就可以在這些數據結構上實現高級查找算法。這種數據結構,就是索引

1、主碼索引:就是在主碼基礎上建立的索引。primary key。在InnoDB中,表數據文件本身就是按B+Tree組織的一個索引結構,這棵樹的葉節點data域保存了完整的數據記錄。這個索引的key是數據表的主鍵,因此InnoDB表數據文件本身就是主索引。又稱主碼索引,聚集主碼。

  此處的主索引又分為有序主碼索引(例如id自增),和不按序排列的索引(例如name-varchar類型),此時對填充因子影響特別大。 

2、聚集主碼。為什么主碼索引(主索引)又稱為聚集主碼。此處的聚集其實是指數據文件與索引聚集在葉子節點,而不是像MyISAM中葉子節點存儲的是數據文件的地址。可以看到葉節點包含了完整的數據記錄。這種索引叫做聚集索引。因為InnoDB的數據文件本身要按主鍵聚集,所以InnoDB要求表必須有主鍵 (MyISAM可以沒有),如果沒有顯式指定,則MySQL系統會自動選擇一個可以唯一標識數據記錄的列作為主鍵,如果不存在這種列,則MySQL自動為 InnoDB表生成一個隱含字段作為主鍵,這個字段長度為6個字節,類型為長整形。

  聚集索引:每個表至多一個聚集索引,術語“聚集”指實際的數據行和相關的鍵值都保存在一起。聚集索引不是一種單獨的索引類型,而是一種存儲數據方式。其具體細節依賴于實現方式,但是InnoDB的聚集索引實際上在同樣的結構中保存了B-Tree索引和數據行。當表有聚集索引的時候,它的數據行實際保存在索引的葉子頁中。每個表只能有一個聚集索引,因為不能一次把行保存在兩個地方。(但是,覆蓋索引可以模擬多個聚集索引)。

當前,SolidDB和InnoDB是唯一支持聚集索引的存儲引擎。InnoDB按照主鍵進行聚集,如果沒有定義主鍵,InnoDB會試著使用唯一的非空索引來代替。如果沒有這種索引,InnoDB就會定義隱藏的主鍵然后在上面進行聚集。

3、輔助索引。輔助索引是相對于主碼索引而言的。在MyISAM中,輔助索引的結構和主碼索引的結構是一樣的,都是采用的是B+樹結構,且葉子節點存儲的都是數據記錄的地址。而InnoDB中雖然也采用的是B+樹存儲,但是輔助索引的葉子節點存儲的是對應于主碼索引的主鍵。也就是說如果你通過輔助索引查找數據,要先在B+樹中查找到主鍵,然后根據主索引查找到對應的記錄,查找兩次

4、非主碼索引。又稱非主索引和輔助索引,同上面輔助索引。

  注:要求主碼列數據長度不能太長,因為輔助索引中葉子節點存儲主鍵值,太長會導致輔助索引的額外存儲空間太大。

  

5、唯一索引。唯一索引就是指列的值唯一,建立起來的索引,數據完整性檢查。主索引肯定是唯一索引。一張表中可以有多個唯一索引,并且可以為NULL的列也可以建立唯一索引(NULL!=NULL),但是一張表中只能有一個主索引(主鍵唯一),并且該列不能為NULL,如果定義了AUTO INCREMENT列,該列必須是主索引的一部分。

6、外鍵索引。外鍵索引其實就是主索引或者輔助索引,主要用于表之間的連接操作等與外鍵有關的操作。如果為某個外鍵字段定義了一個外鍵約束條件,MySQL就會定義一個內部索引來幫助自己以最有效率的方式去管理和使用外鍵約束條件。目前MySQL默認的存儲引擎中,只有InnoDB支持外鍵約束且不要求存在對應列的索引,但是通常考慮效率都應加上。

7、全文索引。文本字段上的普通索引只能加快對出現在字段內容最前面的字符串(也就是字段內容開頭的字符)進行檢索操作。如果字段里存放的是由幾個、甚至是多個單詞構成的較大段文字,普通索引就沒什么作用了。這種檢索往往以LIKE %word%的形式出現,這對MySQL來說很復雜,如果需要處理的數據量很大,響應時間就會很長。這類場合正是全文索引(full-text index)可以大顯身手的地方。在生成這種類型的索引時,MySQL將把在文本中出現的所有單詞創建為一份清單,查詢操作將根據這份清單去檢索有關的數 據記錄。全文索引即可以隨數據表一同創建,也可以等日后有必要時再使用下面這條命令添加:
ALTER TABLE tablename ADD FULLTEXT(column1, column2)
有了全文索引,就可以用SELECT查詢命令去檢索那些包含著一個或多個給定單詞的數據記錄了。下面是這類查詢命令的基本語法:
SELECT * FROM tablename
WHERE MATCH(column1, column2) AGAINST(‘word1′, ‘word2′, ‘word3′)
上面這條命令將把column1和column2字段里有word1、word2和word3的數據記錄全部查詢出來。
注解:InnoDB數據表5.6之前不支持全文索引。

8、復合索引。又稱混合索引或連接索引。符合索引其實就是多列索引。就是在幾個列的基礎上建立索引,其中復合索引的第一個列可以充當單列索引使用order by、group by等。當使用復合索引的時候,交換列的順序可能會創建更好的索引。

9、覆蓋索引。指滿足了查詢中給定表用到的所有的列。where子句、order by、group by以及select語句中的所有的列,全覆蓋。

  覆蓋索引適合那些很多主碼較小長度和外鍵約束的大型規范化約束來說是理想的優化方式。因為InnoDB數據庫中主碼的值會被附加在非主碼索引的每個對應的葉子節點的后面。

10、單列索引。是個統稱。上述的主碼索引、唯一鍵索引、外鍵索引、聚集主碼、聚集索引、主索引等等,除了多列索引和聚合索引其他都屬于單列索引。

11、普通索引。就是不是主索引、唯一索引等的索引。

參考文獻:

  1、MySQL索引背后的數據結構及算法原理

  2、mysql索引的類型和優缺點

  3、[轉]mysql索引結構原理、性能分析與優化

  4、mysql索引之聚集索引

轉載于:https://www.cnblogs.com/xiangyangzhu/p/index.html

總結

以上是生活随笔為你收集整理的主码索引、聚集索引、非主码索引(辅助索引)、唯一索引、外键索引、复合索引、非主码索引、聚集主码(聚集索引)、单列索引、多列索引、普通索引等...的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 手机在线小视频 | 免费无码一区二区三区 | 日本不卡在线播放 | 57pao成人国产永久免费视频 | 黑人黄色一级片 | 日韩黄色短视频 | 有码视频在线观看 | 青青草精品在线视频 | 91美女在线观看 | 92国产精品| 黑人巨大猛交丰满少妇 | 老司机在线精品视频 | 自拍在线视频 | 日韩在线一区二区三区 | 国产嫩草影院久久久 | 久久新视频| 欧美xxxxx牲另类人与 | xxxx69视频 | 轻点好疼好大好爽视频 | 欧美成人黄色小视频 | 夜夜爽夜夜叫夜夜高潮漏水 | 欧美激情3p | 四虎影视库 | 成长快手短视频在线观看 | 僵尸叔叔在线观看国语高清免费观看 | 黄色avav | 777奇米色 | 亚洲一区二区在线免费 | 久久人人爽天天玩人人妻精品 | 不用播放器的av网站 | 国产精品九色 | 99re在线观看视频 | 一区二区三区韩国 | 熟女性饥渴一区二区三区 | 日韩高清免费观看 | 日本一区二区视频 | 久久久99精品免费观看 | 国产精品网站入口 | 看特级黄色片 | 午夜少妇久久久久久久久 | 久久精品aⅴ无码中文字字幕重口 | 亚洲午夜福利一区二区三区 | 天海翼一区 | 乱码一区二区三区 | 亚洲欧洲一级 | 综合久久久久久 | 国产妇女视频 | 97超碰人人澡人人爱学生 | 国产精品18久久久久久无码 | 少妇一晚三次一区二区三区 | 国产3p精品一区 | 蜜桃视频日韩 | www欧美色 | 日韩精品自拍 | 日本猛少妇色xxxxx | 国产午夜啪啪 | 日韩在线观看免费高清 | 久久99成人| 亚洲一区二区久久 | 精品国产午夜福利 | 在线观看成人一区 | 国产精品视频网址 | 日本一区二区三区久久 | 国产中文字幕在线视频 | 久久日韩精品 | 999久久久免费精品国产 | 五月婷婷激情小说 | 伊人久久久久噜噜噜亚洲熟女综合 | 欧美资源在线观看 | 亚洲欧美天堂网 | 99国产揄拍国产精品 | 污污小说在线观看 | 亚洲色网址 | 免费午夜人成电影 | 九九av在线| juliaann办公室丝袜大战 | 国产视频在 | 成人播放器 | 老头糟蹋新婚少妇系列小说 | 成人av免费在线播放 | 香蕉视频久久久 | 国产精品丝袜黑色高跟鞋的设计特点 | 神马国产 | 北条麻妃一区二区三区四区五区 | 男生和女生靠逼视频 | 看av的网址 | 特级精品毛片免费观看 | 日韩经典一区二区 | 草久影院 | 成人激情在线 | 韩国av中文字幕 | 国产精品无码电影 | 久久夫妻视频 | 天天综合久久 | 亚洲大尺度av | 国产xxx69麻豆国语对白 | 国产做爰xxxⅹ高潮视频12p | 国产第一亚洲 | 最新在线中文字幕 |