MySQL 為什麼要給表加上主鍵

2022-01-30 18:00:16 字數 734 閱讀 2919

1.乙個沒加主鍵的表,它的資料無序的放置在磁碟儲存器上,一行一行的排列的很整齊.

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

3.給表中多個字段加上常規的索引,那麼就會出現多個獨立的索引結構.欄位中的資料就會被複製乙份出來,用於生成索引,葉子節點是主鍵id,這也就是非聚集索引.,下面就是乙個主鍵和三個常規索引的結構

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

5.通過其他索引欄位去查,那麼葉子節點是主鍵id,然後再去根據主鍵查,聚集索引(主鍵)是通往真實資料所在的唯一路徑

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

為什麼要給自己設限?

為什麼要給自己設限?乙個人年輕的時候最好不要給自己設界或是劃一道線,比如計算機畢業,你對自己說我 是學程式設計的,做技術和做程式設計師更適合我,至少 30歲前我會傾向於技術方面。那麼 也許真的 30歲之前你一直在做技術和程式設計師,你非常的執著但也許你錯過了很多機會,5年 10年之後的校友聚會上你會...

mysql主鍵重要性 MySQL為什麼需要乙個主鍵

主鍵 表中每一行都應該有可以唯一標識自己的一列 或一組列 乙個顧客可以使用顧客編號列,而訂單可以使用訂單id,雇員可以使用雇員id 或 雇員社會保險號。主鍵 primary key 一列 或一組列 其值能夠唯一區分表中的每個行。唯一標識表中每行的這個列 或這組列 稱為主鍵。沒有主鍵,更新或刪除表中特...

MySQL為什麼需要乙個主鍵

主鍵 表中每一行都應該有可以唯一標識自己的一列 或一組列 乙個顧客可以使用顧客編號列,而訂單可以使用訂單id,雇員可以使用雇員id 或 雇員社會保險號。主鍵 primary key 一列 或一組列 其值能夠唯一區分表中的每個行。唯一標識表中每行的這個列 或這組列 稱為主鍵。沒有主鍵,更新或刪除表中特...