MySQL是一款廣泛使用的關系型數據庫,既支持聚簇索引,又支持非聚簇索引。
首先,聚簇索引主要通過排列數據來提高查詢效率,而不是在索引表中維護一個指向數據塊的指針。這樣的話,同一行的所有數據都存儲在一起,因此可以更快地進行讀寫操作。雖然聚簇索引只能有一個,但它實際上包含了所有的數據,所以通常會被所有的查詢引用。
CREATE TABLE t1 ( id INT PRIMARY KEY, name VARCHAR(20) ) ENGINE=InnoDB;
ALTER TABLE t1 ADD INDEX(name); //創建非聚簇索引
相比之下,非聚簇索引是指在索引表中維護一個指向數據塊的指針,并根據這個指針來查詢。可以有多個非聚簇索引,并且每個索引都只包含索引列的值和指向實際數據存儲的指針。
在實際開發應用中,需要根據查詢需求選擇適當的索引類型。如果經常需要通過聚簇索引或非聚簇索引來查詢并修改數據,則在構建數據表時,需要對這兩個索引類型進行合理設計。