廣州網(wǎng)站關(guān)鍵詞排名鄭州網(wǎng)站關(guān)鍵詞排名技術(shù)代理
這是后端面試集錦第十七篇博文——MySQL
面試話術(shù)???
1. 解釋一下單列索引和聯(lián)合索引
-
單列索引是指在表的某一列上創(chuàng)建索引。
-
聯(lián)合索引是在多個列上聯(lián)合創(chuàng)建索引。
單列索引可以出現(xiàn)在where
條件的任何位置,而聯(lián)合索引需要按照一定的順序來寫。在多條件查詢的時候,聯(lián)合索引的效率更高,我們聯(lián)合索引也最多創(chuàng)建兩列。
我們創(chuàng)建索引的時候也得考慮到我們這張表的更新頻率,如果表里索引比較多的話是比較影響更新速度的,因為創(chuàng)建索引的過程其實就是構(gòu)建一個二叉樹,而每次更新完數(shù)據(jù)都得重新計算二叉樹,所以就影響更新速度。
索引并不是時時都會生效的,比如以下幾種情況就能導(dǎo)致索引失效:
-
如果條件中有
or
,即使其中有條件帶索引也不會使用,這也是為什么盡量少用or
的原因,如果要想使用or
,又想讓索引生效,只能將or
條件中的每個列都加上索引。 -
like
查詢是以%
開頭,會導(dǎo)致索引失效。 -
如果列類型是字符串,那一定要在條件中將數(shù)據(jù)使用引號引用起來,否則索引失效。
-
如果
mysql
估計使用全表掃描要比使用索引快,則不使用索引。
所以呢,我們創(chuàng)建索引的話,也不是隨便創(chuàng)建的。
2. 使用索引查詢的優(yōu)缺點
-
使用索引優(yōu)點:
<