MySQL數(shù)據(jù)庫索引中的單列索引與多列索引
以下的文章主要介紹的是MySQL數(shù)據(jù)庫索引,即單列索引與多列索引的介紹,以及對多列索引的SQL命令的示例,以下就是這些內(nèi)容的介紹,望你在瀏覽之后會對MySQL數(shù)據(jù)庫索引的相關(guān)內(nèi)容有更深入的了解。
為了提高搜索效率,我們需要考慮運用多列MySQL數(shù)據(jù)庫索引。如果為firstname、lastname和age這三個列創(chuàng)建一個多列索引,MySQL只需一次檢索就能夠找出正確的結(jié)果!下面是創(chuàng)建這個多列索引的SQL命令:
- ALTER TABLE people ADD INDEX fname_lname_age (firstname,lastname,age);
由于索引文件以B-樹格式保存,MySQL能夠立即轉(zhuǎn)到合適的firstname,然后再轉(zhuǎn)到合適的lastname,***轉(zhuǎn)到合適的age。在沒有掃描數(shù)據(jù)文件任何一個記錄的情況下,MySQL就正確地找出了搜索的目標(biāo)記錄!
那么,如果在firstname、lastname、age這三個列上分別創(chuàng)建單列索引,效果是否和創(chuàng)建一個firstname、lastname、age的多列MySQL數(shù)據(jù)庫索引一樣呢?答案是否定的,兩者完全不同。當(dāng)我們執(zhí)行查詢的時候,MySQL只能使用一個索引。如果你有三個單列的MySQL數(shù)據(jù)庫索引,MySQL會試圖選擇一個限制最嚴格的索引。
但是,即使是限制最嚴格的單列索引,它的限制能力也肯定遠遠低于firstname、lastname、age這三個列上的多列索引。
以上的相關(guān)內(nèi)容就是對MySQL數(shù)據(jù)庫索引的介紹,望你能有所收獲。
【編輯推薦】