MySQL innodb如何選擇一個聚簇索引
對於innodb,主鍵毫無疑問是一個聚簇索引。但是當一個表沒有主鍵,或者沒有一個索引,innodb會如何處理呢。請看如下規則:
如果一個主鍵被定義了,那麼這個主鍵就是作為聚簇索引
如果沒有主鍵被定義,那麼該表的第一個唯一非空索引被作為聚簇索引
如果沒有主鍵也沒有合適的唯一索引,那麼innodb內部會生成一個隱藏的主鍵作為聚簇索引,這個隱藏的主鍵是一個6個位元組的列,該列的值會隨著資料的插入自增。
注意的地方:
二級索引的葉子節點並不儲存行資料的實體地址。而是儲存的該行的主鍵值。
所以:二級索引包含了兩次查詢。一次是查詢次級索引自身。然後查詢主鍵(聚簇索引)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15498/viewspace-2216192/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【Mysql】InnoDB 中的聚簇索引、二級索引、聯合索引MySql索引
- 一分鐘明白MySQL聚簇索引和非聚簇索引MySql索引
- MySQL中的聚簇索引和非聚簇索引MySql索引
- InnoDB學習(八)之 聚簇索引索引
- MySQL聚簇索引和非聚簇索引的原理及使用MySql索引
- 一看就懂的MySQL的聚簇索引,以及聚簇索引是如何長高的MySql索引
- MySQL 聚簇索引 和覆蓋索引MySql索引
- 淺談聚簇索引與非聚簇索引索引
- 聚簇索引索引
- MySQL 聚簇索引一定是主鍵嗎MySql索引
- 資料庫表,索引(索引組織表,聚簇表,聚簇索引,)資料庫索引
- 資料庫聚簇索引——not null條件對唯一鍵索引成為聚簇索引的影響資料庫索引Null
- 聚簇索引和非聚簇索引到底有什麼區別?索引
- 如何選擇普通索引和唯一索引《死磕MySQL系列 五》索引MySql
- 如何選擇配置 MySQL innodb_log_file_sizeMySql
- [MySQL]為什麼非聚簇索引不儲存資料位置MySql索引
- 一篇文章講清楚MySQL的聚簇/聯合/覆蓋索引、回表、索引下推MySql索引
- MySQL字首索引和索引選擇性MySql索引
- MySQL的B+Tree索引到底是咋回事?聚簇索引到底是如何長高的?MySql索引
- MySQL InnoDB 索引MySql索引
- 【實驗】【聚簇】聚簇(Cluster)和聚簇表(Cluster Table)的建立與總結
- Oracle聚簇表Oracle
- mysql innodb索引高度MySql索引
- 淺談索引系列之聚簇因子(clustering_factor)索引
- clustering factor索引聚簇因子和執行計劃索引
- Mysql innodb引擎(一)緩衝和索引MySql索引
- MySQL索引選擇及規則整理MySql索引
- mysql聯合索引的選擇性MySql索引
- 理解索引和聚簇——效能調整手冊和參考索引
- 如何選擇一個Flex框架Flex框架
- 聚簇表簡介
- 聚簇因子的理解
- 表資料量影響MySQL索引選擇MySql索引
- MySQL進階【五】—— MySQL查詢優化器是如何選擇索引的MySql優化索引
- 聊聊Oracle聚簇Cluster(上)Oracle
- ORACLE 聚簇因子優化Oracle優化
- oracle 聚簇表學習Oracle
- 探索MySQL的InnoDB索引失效MySql索引