2013-04-04 14 views
2

對於這個特殊的SQL查詢:SQL指數,屬性序

select firstName 
from students 
where lastName = "john" 

正在建設一個B +樹索引上(姓氏,名字)不是建立在(名字,姓氏),爲什麼索引快?

+1

(姓氏,名字)會更好,因爲你在'lastName'列有'WHERE'條件。 – MarcinJuraszek 2013-04-04 05:30:27

回答

1

INDEX name (lastName,FirstName)將快於INDEX name (FirstName,lastName)

它也可用於指定只是一個lastName的值查詢,因爲該列是從MySQL manual

指數

最左邊前綴

如果該表具有多列索引,則優化程序可以使用 索引的任何最左前綴來查找行。例如,如果 在(col1,col2,col3)上有三列索引,則已在(col1),(col1,col2)和(col1,col2,col3)上爲 搜索功能編制索引。