建立索引:
alter table student add index index_student (name,weight,height);
驗證最左優先原則:
執行:explain select * from student where name = 『xiaohong』
可以看到走了索引
這樣肯定能走索引,再來看乙個ba組合
這樣要可能走索引,但是這個並不滿足最左優先原則
還有cba這樣的組合也能走索引 ,有點疑惑,不知道是不是innodb優化了sql
但是cb bc是不能走索引的
最左優先說會從左向又一次匹配知道遇到》 < between and就會停止匹配,
竟然這樣也可以執行到索引。
單獨使用in,
執行explain select * from student where name in (『xiaohong』)
結論:如果索引是(a,b,c)那麼不只是a,ab,abc可以走索引,像是bc.acb,bca都可以走索引,or < > between and甚至是in都也是可以走到索引的。(我在很多文章看到說in不能走索引,包括在面試中,面試官也覺得不會走索引的
MySql最左字首原則
企業的筆試題,對資料庫這塊了解很淺,所以還是記錄一下吧。b tree 索引和 hash 索引的對比 對於 b tree 和 hash 資料結構的理解能夠有助於 不同儲存引擎下使用不同索引的查詢效能的差異,尤其是那些允許你選擇 b tree 或者 hash 索引的記憶體儲存引擎。b tree 索引的特...
MySql最左字首原則
最左字首原則 通過例項理解單列索引 多列索引以及最左字首原則 例項 現在我們想查出滿足以下條件的使用者id mysql select uid from people where lname liu and fname zhiqun and age 26 因為我們不想掃瞄整表,故考慮用索引。單列索引 ...
mysql最左字首原則
假設資料 表 t a,b,c rowid 為物理位置 rowid a b c 1 111 2 2 113 3 2214 4 1 33 5 2312 6 1 25 7 239 8 1 22 9 136 10 2 211 11 228 12 1 17 13 2315 14 1 14 15 2110 當你...