從資料庫角度看索引:有b+樹索引和hash索引。
從物理角度看索引:有聚集索引和非聚集索引。
而從邏輯角度看索引:有單列索引和組合索引。
單列索引:即乙個索引只包含單個列,乙個表可以有多個單列索引,但這不是組合索引。
組合索引:即乙個索包含多個列。注:
1.在mysql中執行查詢時,只能使用乙個索引,如果我們在lname,fname,age上分別建單列索引,執行查詢時,只能使用乙個索引,mysql會選擇乙個最嚴格(獲得結果集記錄數最少)的索引。 2.
加上組合索引後,組合索引起作用,只需查詢一條符合結果的資料,效率要比單獨索引高,但是復合索引對於or查詢不起作用
普通索引:
alter table people add index lname (lame);
組合索引:
alter table people add index lname_fname_age (lame,fname,age); 注:
關於 組合索引 相關的最左匹配原則可參考我的:
MySQL單列索引和組合索引
單列索引,顧名思義也就是只有乙個欄位的索引列。組合索引,又稱復合索引,兩個或更多個列上的索引被稱作復合索引。對於復合索引,他們都遵循左側原則,也是就是說乙個查詢可以只使用復合索引最左側的一部份。例如索引是key index a,b,c 可以支援a a,b a,b,c 3種組合進行查詢,但不支援 b,...
MySQL單列索引和組合索引的區別介紹
mysql單列索引是我們使用mysql資料庫中經常會見到的,mysql單列索引和組合索引的區別可能有很多人還不是十分的了解,下面就為您分析兩者的主要區別,供您參考學習。為了形象地對比兩者,再建乙個表 create table myindex i testid int not null auto in...
MySQL單列索引和組合索引的建立及區別介紹
mysql單列索引是我們使用mysql資料庫中經常會見到的,mysql單列索引和組合索引的區別可能有很多人還不是十分的了解,下面就為您分析兩者的主要區別,供您參考學習。為了形象地對比兩者,再建乙個表 create table myindex i testid int not null auto in...