[MySQL] innodb表為varchar字段建立索引后的查詢過程


InnoDB是聚集索引方式,因此數據和索引都存儲在同一個文件里。

首先InnoDB會根據主鍵ID作為KEY建立索引B+樹,如左下圖所示,而B+樹的葉子節點存儲的是主鍵ID對應的數據

比如在執行select * from user_info where id=15這個語句時

InnoDB就會查詢這顆主鍵ID索引B+樹,找到對應的user_name='Bob'。

 

這是建表的時候InnoDB就會自動建立好主鍵ID索引樹,這也是為什么MySQL在建表時要求必須指定主鍵的原因。

當我們為表里某個字段加索引時InnoDB會怎么建立索引樹呢?

比如我們要給user_name這個字段加索引,那么InnoDB就會建立user_name索引B+樹,節點里存的是user_name這個KEY,葉子節點存儲的數據的是主鍵KEY。注意,葉子存儲的是主鍵KEY!

拿到主鍵KEY后,InnoDB才會去主鍵索引樹里根據剛在user_name索引樹找到的主鍵KEY查找到對應的數據。

 


免責聲明!

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



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