眾所周知,索引是關系型數據庫中給數據庫表中一列或多列的值排序后的存儲結構,SQL的主流索引結構有B+樹以及Hash結構,聚集索引以及非聚集索引用的是B+樹索引。這篇文章會總結SQL Server以及MySQL的InnoDB和MyISAM兩種SQL的索引。
- SQL Sever索引類型有:唯一索引,主鍵索引,聚集索引,非聚集索引。
- MySQL 索引類型有:唯一索引,主鍵(聚集)索引,非聚集索引,全文索引。
(1)聚集索引
聚集索引是指數據庫表行中數據的物理順序與鍵值的邏輯(索引)順序相同。一個表只能有一個聚集索引,因為一個表的物理順序只有一種情況,所以,對應的聚集索引只能有一個。如果某索引不是聚集索引,則表中的行物理順序與索引順序不匹配,與非聚集索引相比,聚集索引有着更快的檢索速度。
(2)非聚集索引
非聚集索引是一種索引,該索引中索引的邏輯順序與磁盤上行的物理存儲順序不同。
參考博客:聚簇索引和非聚簇索引的理解