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索引
- 資料庫聚簇索引——not null條件對唯一鍵索引成為聚簇索引的影響資料庫索引Null
- 聚簇索引和非聚簇索引到底有什麼區別?索引
- [MySQL]為什麼非聚簇索引不儲存資料位置MySql索引
- 如何選擇普通索引和唯一索引《死磕MySQL系列 五》索引MySql
- 一篇文章講清楚MySQL的聚簇/聯合/覆蓋索引、回表、索引下推MySql索引
- 如何選擇配置 MySQL innodb_log_file_sizeMySql
- MySQL的B+Tree索引到底是咋回事?聚簇索引到底是如何長高的?MySql索引
- MySQL InnoDB 索引MySql索引
- mysql innodb索引高度MySql索引
- Mysql innodb引擎(一)緩衝和索引MySql索引
- MySQL索引選擇及規則整理MySql索引
- 唯一索引和普通索引的選擇索引
- 探索MySQL的InnoDB索引失效MySql索引
- 表資料量影響MySQL索引選擇MySql索引
- MySQL進階【五】—— MySQL查詢優化器是如何選擇索引的MySql優化索引
- innodb 引擎索引 (一)索引
- mysql常用儲存引擎(InnoDB、MyISAM、MEMORY、MERGE、ARCHIVE)介紹與如何選擇MySql儲存引擎Hive
- 搞懂MySQL InnoDB B+樹索引MySql索引
- MySQL InnoDB的索引擴充套件MySql索引套件
- MySQL InnoDB搜尋索引的StopwordsMySql索引
- MySQL中Innodb如何計算索引的統計資訊?MySql索引
- MySQL:Innodb 一個死鎖案例MySql
- mysql索引為啥要選擇B+樹 (下)MySql索引
- mysql索引為啥要選擇B+樹 (上)MySql索引
- MySQL資料庫索引選擇使用B+樹MySql資料庫索引
- www.xttblog.com MySQL InnoDB 索引原理MySql索引
- 【Mysql】InnoDB 中的 B+ 樹索引MySql索引
- 普通索引和唯一索引,應該怎麼選擇?索引
- MySql如何使用索引(一)MySql索引