where a=1 and b=1where b=1where b=1 order by time desc請問這三條sql 如何建索引只建一條怎么建
3 回答

夢里花落0921
TA貢獻1772條經(jīng)驗 獲得超6個贊
b_time
btimea對于第一個查詢還是用不上a的index,只能用b的。
第2個和第3個都全能用了。
兩個的話就好弄了 ab 和btime。

慕哥6287543
TA貢獻1831條經(jīng)驗 獲得超10個贊
一條的話 ... Index( b, time, a ) 聯(lián)合索引 ...
MySQL 優(yōu)化器不會自動調(diào)整 WHERE 的先后順序 ... 所以需要你自己寫的時候注意 ...

慕桂英3389331
TA貢獻2036條經(jīng)驗 獲得超8個贊
具體問題具體分析吧,mysql版本之間的差別比較大,需要針對不同的版本要看對索引的支持如何,
這三條查詢中,b字段的查詢頻率最高,所以b字段要加入到索引中,多列索引中,索引的列順序很重要。
只想建立單個索引,index(b,time)最合適。
“where a=1 and b=1”應(yīng)該改為“where b=1 and a=1”
添加回答
舉報
0/150
提交
取消