1. 程式人生 > >MySQL 索引的分類

MySQL 索引的分類

MySQL的索引包括普通索引、唯一性索引、全文索引、單列索引、多列索引和空間索引等。本小節將詳細講解這幾種索引的含義和特點。   1.普通索引   在建立普通索引時,不附加任何限制條件。這類索引可以建立在任何資料型別中,其值是否唯一和非空由欄位本身的完整性約束條件決定。建立索引以後,查詢時可以通過索引進行查詢。例如,在student表的stu_id欄位上建立一個普通索引。查詢記錄時,就可以根據該索引進行查詢。   2.唯一性索引   使用UNIQUE引數可以設定索引為唯一性索引。在建立唯一性索引時,限制該索引的值必須是唯一的。例如,在student表的stu_name欄位中建立唯一性索引,那麼stu_name欄位的值就必需是唯一的。通過唯一性索引,可以更快速地確定某條記錄。主鍵就是一種特殊唯一性索引。   3.全文索引   使用FULLTEXT引數可以設定索引為全文索引。全文索引只能建立在CHAR、VARCHAR或TEXT型別的欄位上。查詢資料量較大的字串型別的欄位時,使用全文索引可以提高查詢速度。例如,student表的information欄位是TEXT型別,該欄位包含了很多的文字資訊。在information欄位上建立全文索引後,可以提高查詢information欄位的速度。MySQL

資料庫從3.23.23版開始支援全文索引,但只有MyISAM儲存引擎支援全文檢索。在預設情況下,全文索引的搜尋執行方式不區分大小寫。但索引的列使用二進位制排序後,可以執行區分大小寫的全文索引。   4.單列索引 www.2cto.com   在表中的單個欄位上建立索引。單列索引只根據該欄位進行索引。單列索引可以是普通索引,也可以是唯一性索引,還可以是全文索引。只要保證該索引只對應一個欄位    即可。   5.多列索引   多列索引是在表的多個欄位上建立一個索引。該索引指向建立時對應的多個欄位,可以通過這幾個欄位進行查詢。但是,只有查詢條件中使用了這些欄位中第一個欄位時,索引才會被使用。例如,在表中的id、name和sex欄位上建立一個多列索引,那麼,只有查詢條件使用了id欄位時該索引才會被使用。   6.空間索引  

使用SPATIAL引數可以設定索引為空間索引。空間索引只能建立在空間資料型別上,這樣可以提高系統獲取空間資料的效率。MySQL中的空間資料型別包括GEOMETRY和POINT、LINESTRING和POLYGON等。目前只有MyISAM儲存引擎支援空間檢索,而且索引的欄位不能為空值。對於初學者來說,這類索引很少會用到