mysql 关联索引_mysql中关于关联索引的问题——对a,b,c三个字段建立联合索引,那么查询时使用其中的2个作为查询条件,是否还会走索引?...
情況描述:在MySQL的user表中,對a,b,c三個字段建立聯合索引,那么查詢時使用其中的2個作為查詢條件,是否還會走索引?
根據查詢字段的位置不同來決定,如查詢a, ? ? a,b ?? a,b,c ?? a,c ? 都可以走索引的,其他條件的查詢不能走索引。
組合索引 有“最左前綴”原則。就是只從最左面的開始組合,并不是所有只要含有這三列存在的字段的查詢都會用到該組合索引。
驗證過程如下所示:
首先,在SQLyog中建立一個user表,如下圖所示;
對中間3個字段(user_name,user_age,user_password)進行聯合索引 index_user_join
查詢情況如下所示:
1.同時查詢這3個字段作為條件的SQL,索引情況及SQL語句如下所示:
SELECT *FROM t_user WHERE? user_name='zs' AND user_age=20 AND user_password='123456';
其使用索引情況如下所示:
從執行結果上可以看到是從走索引進行查詢的
2.使用user_age和user_password作為查詢條件進行查詢,索引及SQL語句如下所示:
3.使用user_name和user_password作為查詢條件進行查詢,索引及SQL語句如下所示:
4.使用user_name作為查詢條件進行查詢,索引及SQL語句如下所示:
5.使用user_age作為查詢條件進行查詢,索引及SQL語句如下所示:
6.使用user_password作為查詢條件進行查詢,索引及SQL語句如下所示:
以上是針對普通的字段建立聯合索引的測試情況及截圖,歡迎小伙伴們來補充~
總結
以上是生活随笔為你收集整理的mysql 关联索引_mysql中关于关联索引的问题——对a,b,c三个字段建立联合索引,那么查询时使用其中的2个作为查询条件,是否还会走索引?...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 新债中签后怎么卖出?卖出时机很重要!
- 下一篇: c#sql防注入模糊查询_SQL中利用L