大家帮忙看看这里的第二句sql为什么会走索引呢,实在是百思不得其解
联合索引确实和顺序无关,但是!=会导致索引失效,那么第二句为什么依旧会继续走索引呢
简单来说第二个 update
语句中,涉及到的列是 b
和 a
,与索引的顺序相同。
和where后面的条件顺序没关系的,没猜错的话你再多个c where后面随便写顺序 只要有a 就走索引
select id ,fname lname ,birth ,hired ,separated,job_code,store_id from employees
# 0.605s 0.610s 0.572S 平均值0.595
SELECT id ,fname lname ,birth ,hired ,separated,job_code,store_id FROM employees
# 0.570S 0.576s 0.594S 平均值:0.580s
SELECT ID ,FNAME LNAME ,BIRTH ,HIRED ,SEPARATED,JOB_CODE,STORE_ID FROM EMPLOYEES
# 0.634s 0.576s 0.575s 平均值: 0595s
select id c1 ,fname c2, lname c3 ,birth c4 ,hired c5,separated c6,job_code c7,store_id c8 from employees
# 0.629s 0.653s 0.685s 平均值:0.655s
SELECT id c1 ,fname c2, lname c3 ,birth c4 ,hired c5,separated c6,job_code c7,store_id c8 FROM employees
# 0.663s .0647s 0.625s 平均值:0.645s
SELECT ID C1 ,FNAME C2, LNAME C3 ,BIRTH C4 ,HIRED C5,SEPARATED C6,JOB_CODE C7,STORE_ID C8 FROM EMPLOYEES
# 0.648s 0.645s 0.657s 平均值: 0.650s