[MySQL] innoDB引擎的主鍵與聚簇索引


mysql的innodb引擎本身存儲的形式就必須是聚簇索引的形式 , 在磁盤上樹狀存儲的 , 但是不一定是根據主鍵聚簇的 , 有三種情形:

1. 有主鍵的情況下 , 主鍵就是聚簇索引

2. 沒有主鍵的情況下 , 第一個非空null的唯一索引就是聚簇索引

3. 如果上面都沒有 , 那么就是有一個隱藏的row-id作為聚簇索引

 

大部分情況下 , 我們建表的時候都會創建主鍵 , 因此大部分都是根據主鍵聚簇的 

當我們根據主鍵字段來進行查詢時 , 效率是最高的 , 不需要二次查找 , 直接主鍵字段查詢索引樹 , 葉子節點就是存儲的數據了

 

當我們根據主鍵查詢時 , 如果就只有唯一一條 , 那么執行計划是下面這樣的 , 差不多是最高效的 . type是const  row只需要掃描一行

+----+-------------+-------+-------+---------------+---------+---------+-------+------+-------+
| id | select_type | table | type  | possible_keys | key     | key_len | ref   | rows | Extra |
+----+-------------+-------+-------+---------------+---------+---------+-------+------+-------+
|  1 | SIMPLE      | tblz  | const | PRIMARY       | PRIMARY | 4       | const |    1 |       |
+----+-------------+-------+-------+---------------+---------+---------+-------+------+-------+

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM