當你定義乙個主鍵時,innodb儲存引擎就把他當做聚集索引
如果你沒有定義乙個主鍵,則innodb定位到第乙個唯一索引,且改索引的所有列值均為非空,就將其當做聚集索引.
如果表沒有主鍵或者合適的唯一索引,innodb會產生乙個隱藏的行id值6位元組的id聚集索引
補充: 由於實際的資料頁只能按照一顆b+樹進行排序,因此每張表只能有乙個聚集索引,聚集索引對於主鍵的排序和範圍查詢非常有利,
二級索引
乙個表中的所有索引除了聚集索引,其他的都是二級索引(secondary index)
輔助索引,其葉子節點並不包含行記錄的全部資料,葉子結點除了包含鍵值以外,每個葉子結點中的索引行還包含了乙個書籤,該書籤用來告訴儲存引擎可以在哪找到相應的資料行,由於innodb引擎表是索引組織表,因此innodb儲存引擎的輔助索引的書籤就是相應行資料的聚集索引鍵,
1.索引管理
索引的建立和刪除
索引的建立:一是定義表時進行定義,二是通過alter語句,三是通過create語句建立
索引的刪除:一是通過alter table,二是通過drop語句
mysql聚集索引 MySQL索引之聚集索引介紹
在mysql裡,聚集索引和非聚集索引分別是什麼意思,有什麼區別?在mysql中,innodb引擎表是 聚集 索引組織表 clustered index organize table 而myisam引擎表則是堆組織表 heap organize table 也有人把聚集索引稱為聚簇索引。當然了,聚集索...
Mysql (InnoDB引擎)聚集索引和輔助索引
innodb儲存引擎表是索引組織表,即按照主鍵的順序儲存資料。聚集索引 clustered index 就是按照每張表的主鍵構造一棵b 樹,樹中的葉子節點存放著表中的行記錄資料,因此,也將聚集索引的葉子節點稱為資料頁 非葉子節點中存放著僅僅是鍵值和指向葉子節點的偏移量。每個葉子節點 資料頁 都通過乙...
mysql主鍵是聚集索引麼 主鍵就是聚集索引嗎?
前言 最近在一次面試中,討論了乙個這樣的問題 主鍵和索引有什麼區別?當時我的回答是這樣的 主鍵就是加了唯一性約束的聚集索引。你確定你所說的是對的?面試官反問到。應該是對的。我不加思索地回答道。你回去後研究一下這個問題吧。難道我真的錯了?第一次嘗試 當問題出現時,請用事實支援你的觀點。首先,必須了解一...