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