[MySQL] 為什么要給表加上主鍵


1.一個沒加主鍵的表,它的數據無序的放置在磁盤存儲器上,一行一行的排列的很整齊.
2.一個加了主鍵的表,並不能被稱之為「表」。如果給表上了主鍵,那么表在磁盤上的存儲結構就由整齊排列的結構轉變成了樹狀結構,並且是「平衡樹」結構,換句話說,就是整個表就變成了一個索引。沒錯,再說一遍,整個表變成了一個索引,也就是所謂的「聚集索引」。 這就是為什么一個表只能有一個主鍵,一個表只能有一個「聚集索引」,因為主鍵的作用就是把「表」的數據格式轉換成「索引(平衡樹)」的格式放置。

 


3.給表中多個字段加上常規的索引,那么就會出現多個獨立的索引結構.字段中的數據就會被復制一份出來,用於生成索引,葉子節點是主鍵ID,這也就是非聚集索引.,下面就是一個主鍵和三個常規索引的結構

 

 

4.通過主鍵去查,葉子節點就是數據行

 


5.通過其他索引字段去查,那么葉子節點是主鍵ID,然后再去根據主鍵查,聚集索引(主鍵)是通往真實數據所在的唯一路徑

 


7.有一種例外可以不使用聚集索引就能查詢出所需要的數據,這種非主流的方法稱之為「覆蓋索引」查詢,也就是平時所說的復合索引或者多字段索引查詢

 


免責聲明!

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



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