mysql創(chuàng)建索引 聚集索引和非聚集索引的區(qū)別底層?
聚集索引和非聚集索引的區(qū)別底層?實際上,索引可以理解為一種特殊的目錄。microsoftsqlserver提供了兩種索引:聚集索引和非聚集索引。接下來,讓我們來說明聚集索引和非聚集索引之間的區(qū)別:事實
聚集索引和非聚集索引的區(qū)別底層?
實際上,索引可以理解為一種特殊的目錄。microsoftsqlserver提供了兩種索引:聚集索引和非聚集索引。接下來,讓我們來說明聚集索引和非聚集索引之間的區(qū)別:事實上,我們的漢語詞典本身就是一個聚集索引。例如,我們需要查“安”字,因為“安”字的拼音是“安”,而按拼音排序的《漢字詞典》以英文字母“a”開頭,以“Z”結尾,所以“安”字自然排在詞典的前面。如果你在所有以“a”開頭的部分后面都找不到“a”這個詞,那就意味著你的字典里沒有這個詞。也就是說,字典的主體本身就是一個目錄,您不需要查找其他目錄就可以找到您需要查找的內容。我們把這種文本內容本身稱為一種按一定規(guī)則排列的目錄,稱之為“聚集索引”。
如果遇到一個不認識的單詞,不知道它的發(fā)音,需要根據字根找到要找的單詞,然后直接根據單詞后面的頁碼翻頁找到要找的單詞。但是,將“字根目錄”與“檢查表”結合起來對找到的單詞進行排序并不是文本的真正排序方法。例如,查“張”字時,查字根后可以看到檢查表中“張”的頁碼是672,檢查表中“張”的頂部是“Chi”,但頁碼是63,“張”的底部是“Nu”,頁碼是390。顯然,這些詞并不真正位于“張”字的上下。您現在看到的三個連續(xù)的單詞“Chi”、“Zhang”和“Nu”實際上是它們在非聚集索引中的排序,即字典體中的單詞在非聚集索引中的映射。我們可以用這種方法找到您需要的單詞,但它需要兩個步驟:首先在目錄中找到結果,然后轉到您需要的頁面。我們稱這種目錄為純目錄,純文本稱為“非聚集索引”。
什么是聚集索引mysql?
SQL server提供兩種索引:聚集索引和非聚集索引。其中,聚集索引是指表中存儲的數據按索引的順序存儲,檢索效率高于非聚集索引,但對數據更新的影響較大。非聚集索引意味著數據存儲在一個地方,索引存儲在另一個地方。索引有一個指向數據存儲位置的指針。非聚集索引的檢索效率低于聚集索引,但對數據更新的影響較小。
聚集索引確定表中數據的物理順序。聚集索引類似于電話簿,按姓氏排列數據。由于聚集索引指定表中數據的物理存儲順序,因此一個表只能包含一個聚集索引。但是索引可以包含多個列(復合索引),就像電話簿是按姓氏和名字組織的一樣。
非聚集索引中的項按鍵值順序存儲,而表中的信息按另一順序存儲(這可以由聚集索引指定)。對于非聚集索引,可以為通常用于在非聚集索引表中查找數據的每列創(chuàng)建非聚集索引。有些書包含多個索引。例如,一本關于園藝學的書可能包括流行植物名稱索引和科學植物名稱索引,因為這是讀者查找信息最常見的兩種方式。