mysql-對type&status字段等加索引對查詢有幫助么?

最常見的是status應(yīng)用在task表中時(shí),抓取數(shù)據(jù)時(shí),sql如下:

SELECT *
FROM
  task
WHERE
  valid = 1
  and runCount < 5
  and opStatus = 1

where條件中runCount變化是最頻繁的,跑一次就要+1.
opStatus最常用的就1(未處理)-->2(鎖定)-->3(成功).而且數(shù)據(jù)分布中1是數(shù)據(jù)量最少的數(shù)據(jù)集,大部分?jǐn)?shù)據(jù)在3這個(gè)狀態(tài)。

取決于你查詢和修改的特性(劃重點(diǎn)),

如果1和非1差不多數(shù)量,加索引并不能有效優(yōu)化。
如果1很少非1很多,而你只查詢1,那么索引是有效的。但是增加和修改的索引效率會降低,如果修改操作出現(xiàn)了瓶頸那么應(yīng)該去掉索引。

按照推論,繼續(xù)驗(yàn)證,現(xiàn)場實(shí)例:
rows:426617
不加opStatus索引時(shí)耗時(shí)在300ms,如下:


image.png

加完索引,后耗時(shí)在5ms。
同時(shí)觀察insert和update耗時(shí)也正常。

話又說回來,如果真是類似性別or業(yè)務(wù)類型,產(chǎn)生就不會動了,而且type的值分布幾乎是均勻的,加索引也不會有明顯性能提升.... 所以字段加索引不是絕對的,要看業(yè)務(wù)場景~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容