{eval=Array;=+count(Array);}

成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

問(wèn)答專欄Q & A COLUMN

SQL IN一定走索引嗎?

MobServiceMobService 回答0 收藏1
收藏問(wèn)題

4條回答

sorra

sorra

回答于2022-06-28 13:57

不一定哦,如果是MySql你可以通過(guò) sql前面加上 explain select Column Name1,Column Name2,Column Name3 from table;

排查是否走索引依次從好到差:system,const,eq_ref,ref,fulltext,ref_or_null,unique_subquery,index_subquery,range,index_merge,index,ALL。

1.索引列的數(shù)據(jù)長(zhǎng)度能少則少。

2.索引一定不是越多越好,越全越好,一定是建合適的。

3.匹配列前綴可用到索引 like 9999%,like %9999%、like %9999用不到索引;

4.Where 條件中 not in 和 <>操作無(wú)法使用索引;匹配范圍值,order by 也可用到索引;

5.多用指定列查詢,只返回自己想到的數(shù)據(jù)列,少用select *;

6.聯(lián)合索引中如果不是按照索引最左列開始查找,無(wú)法使用索引;聯(lián)合索引中精確匹配最左前列并范圍匹配另外一列可以用到索引;

7.聯(lián)合索引中如果查詢中有某個(gè)列的范圍查詢,則其右邊的所有列都無(wú)法使用索引。

我是陽(yáng)光隨馨馨,如果你看完了,點(diǎn)個(gè)贊,加個(gè)關(guān)注,轉(zhuǎn)發(fā)一下哈

評(píng)論0 贊同0
  •  加載中...
Blackjun

Blackjun

回答于2022-06-28 13:57

根據(jù)實(shí)際的情況,需要控制IN查詢的范圍。不走索引到原因有以下幾點(diǎn)

  1. IN 的條件過(guò)多,會(huì)導(dǎo)致索引失效,走索引掃描
  2. IN 的條件過(guò)多,返回的數(shù)據(jù)會(huì)很多,可能會(huì)導(dǎo)致應(yīng)用堆內(nèi)內(nèi)存溢出。

評(píng)論0 贊同0
  •  加載中...
DTeam

DTeam

回答于2022-06-28 13:57

不一定,數(shù)據(jù)庫(kù)會(huì)優(yōu)先選擇最快的方式,這個(gè)之前剛好遇到過(guò)這個(gè)問(wèn)題,當(dāng)你in的參數(shù)里篩選的數(shù)據(jù)是總數(shù)比例80%以上時(shí),就不走索引了,而是走的全表查詢,因?yàn)閿?shù)據(jù)庫(kù)覺(jué)得這樣做比走索引更快,低于這個(gè)比例,數(shù)據(jù)庫(kù)會(huì)選擇走索引,謝謝

評(píng)論0 贊同0
  •  加載中...
baiy

baiy

回答于2022-06-28 13:57

這不一定的,雖然in里的字段加了索引,但是如果對(duì)該字段使用函數(shù),那索引就失效了。

評(píng)論0 贊同0
  •  加載中...

最新活動(dòng)

您已邀請(qǐng)0人回答 查看邀請(qǐng)

我的邀請(qǐng)列表

  • 擅長(zhǎng)該話題
  • 回答過(guò)該話題
  • 我關(guān)注的人
向幫助了您的網(wǎng)友說(shuō)句感謝的話吧!
付費(fèi)偷看金額在0.1-10元之間
<