數據庫優化之聯合索引

聯合索引是什麼?爲什麼需要注意聯合索引中的順序?

Mysql可以使用多個字段同時建立一個索引,叫做聯合索引,在聯合索引中,如果想要命中索引,需要按照建立索引時的字段順序使用,否則無法命中.

具體原因:

Mysql使用索引時需要索引有序,假設現在建立了name,age,school,的聯合索引,那麼索引的排序爲:先按照name排序,如果name相同在按照age排序,如果age相同在按照school排序.

當進行查詢時,此時索引僅僅按照name嚴格有序,因爲必須首先使用name字段進行等值查詢,之後對於匹配到的列而言,其按照age字段嚴格有序,此時可以使用age字段用作索引查找,一次類推,因此在建立聯合索引的時候應該注意索引列的順序,一般情況下,將查詢需求頻繁或者字段選擇性高的列放在前面,此處可以根據特例的查詢或者表結構進行單獨的調整.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章