一般大家添加索引時都考慮些什么?我一般添加索引就是where子句查詢幾個字段,哪些字段,就添加什么索引。
1 回答

慕運(yùn)維8079593
TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超5個贊
where條件有什么字段就加什么索引,就有點(diǎn)盲目了。關(guān)于索引設(shè)計已經(jīng)有幾本書了,三言兩語說不清,列舉幾點(diǎn):
1.考慮列值分布,如果選擇性不好,那么建索引很有可能不起效,只會增加DML開銷;
2.覆蓋索引,避免回表,直接從索引取得查詢結(jié)果,就是你的做法,但如果每一個SQL都給它建覆蓋索引,要考慮一下過多索引給DML帶來的壓力,以及索引的冗余;
3.注意頻繁更新的表,索引不宜過多;
4.根據(jù)表數(shù)據(jù)量和執(zhí)行計劃來設(shè)計索引
...
建了索引之后,也應(yīng)該注意SQL的寫法是否導(dǎo)致了索引失效,例如類型不匹配,索引列做函數(shù)處理或運(yùn)算,%前綴通配,沒包含多列索引的前導(dǎo)列等等。
添加回答
舉報
0/150
提交
取消