你來說一下 Mysql 索引有幾種類型呢?分別是什么?


MySQL 的索引有兩種分類方式:邏輯分類和物理分類。 按照邏輯分類,索引可分為:

  • 主鍵索引:一張表只能有一個主鍵索引,不允許重復、不允許為 NULL;
  • 唯一索引:數據列不允許重復,允許為 NULL 值,一張表可有多個唯一索引,但是一個唯一索引只能包含一列,比如身份證號碼、卡號等都可以作為唯一索引;
  • 普通索引:一張表可以創建多個普通索引,一個普通索引可以包含多個字段,允許數據重復,允許 NULL 值插入;
  • 全文索引:讓搜索關鍵詞更高效的一種索引。

按照物理分類,索引可分為:

  • 聚集索引:一般是表中的主鍵索引,如果表中沒有顯示指定主鍵,則會選擇表中的第一個不允許為 NULL 的唯一索引,如果還是沒有的話,就采用 Innodb 存儲引擎為每行數據內置的 6 字節 ROWID 作為聚集索引。每張表只有一個聚集索引,因為聚集索引的鍵值的邏輯順序決定了表中相應行的物理順序。聚集索引在精確查找和范圍查找方面有良好的性能表現(相比於普通索引和全表掃描),聚集索引就顯得彌足珍貴,聚集索引選擇還是要慎重的(一般不會讓沒有語義的自增 id 充當聚集索引);
  • 非聚集索引:該索引中索引的邏輯順序與磁盤上行的物理存儲順序不同(非主鍵的那一列),一個表中可以擁有多個非聚集索引。

 

這是我面過最簡單的了 真是太難為人了!!


免責聲明!

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



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