MySQL筆記(聚集索引)

2021-08-25 13:27:31 字數 634 閱讀 4088

(目前為止比較困惑的乙個部分,重點mark下!)

聚集索引(或稱聚簇索引)是一種儲存資料的方式,在postgre和oracle(被稱

為"index-organized table")均進行了實現。

mysql中僅有soliddb和innodb支援聚集索引,並且在5.1之前還不支援選擇列進行聚集。

在innodb中指定了主鍵後,資料的儲存順序就是主鍵的順序。例如對於乙個以整數字段作為主鍵的表,依次插入9,8,10,實驗結果表明順序會自動被調整為8,9,10

(由此可見在innodb中使用主鍵一定要特別的注意,如果使用隨機資料做為主鍵的話,可能會造成大量的資料移動從而減低伺服器的效能)

innodb使用主鍵進行聚集,如果沒有主鍵,innodb會使用唯一的非空索引來代替,如果沒有這種索引,innodb就會定義隱藏的主鍵,然後在上面進行聚集。innodb只聚集在同一頁面的記錄,包含相鄰鍵值的頁面也許會相距甚遠。聚集索引把索引和資料都儲存到同乙個b樹中。

包括以下幾個缺點

1)插入速度嚴重依賴插入順序

2)更新代價高

3)插入新行,可能會產生分頁

innodb的聚集索引中,每個葉子節點都包含主鍵值、事務id、回滾指標及非主鍵列。

在被聚集的表上建立索引時,主鍵值將被作為「指標」

mysql聚集索引 MySQL索引之聚集索引介紹

在mysql裡,聚集索引和非聚集索引分別是什麼意思,有什麼區別?在mysql中,innodb引擎表是 聚集 索引組織表 clustered index organize table 而myisam引擎表則是堆組織表 heap organize table 也有人把聚集索引稱為聚簇索引。當然了,聚集索...

MySQL 聚集索引 非聚集索引簡述

mysql索引中可以分為聚集索引與非聚集索引兩類,在網路上也見過聚簇的說法,這裡先簡單介紹兩種索引的含義與適用場景。懶得畫圖,全是字。索引的鍵值邏輯順序決定了表資料行的物理儲存順序,也就是在資料庫上連線的記錄在磁碟上的物理儲存位址也是相鄰的,注意這一點特性,我們可以分析出它的適用情況。由於聚集索引規...

MySQL聚集索引和非聚集索引

mysql的innodb儲存引擎的索引分為聚集索引和非聚集索引兩大類,理解聚集索引和非聚集索引可通過對比漢語字典的索引。漢語字典提供了兩類檢索漢字的方式,第一類是拼音檢索 前提是知道該漢字讀音 比如拼音為cheng的漢字排在拼音chang的漢字後面,根據拼音找到對應漢字的頁碼 因為按拼音排序,二分查...