Index Condition Pushdown(索引下推) MySQL 5.6引入了索引下推優(yōu)化刺覆,默認(rèn)開啟,使用SET optimizer_switch = ‘index_condition_pushdown=off’;可以將其關(guān)閉评甜。官方文檔中給的例子和解釋如下: people表中(zipcode肘交,lastname氯窍,firstname)構(gòu)成一個索引
SELECT * FROM people WHERE zipcode=‘95054’ AND lastname LIKE ‘%etrunia%’ AND address LIKE ‘%Main Street%’;
如果沒有使用索引下推技術(shù),則MySQL會通過zipcode='95054’從存儲引擎中查詢對應(yīng)的數(shù)據(jù)锤躁,返回到MySQL服務(wù)端搁料,然后MySQL服務(wù)端基于lastname LIKE '%etrunia%'和address LIKE '%Main Street%'來判斷數(shù)據(jù)是否符合條件。 如果使用了索引下推技術(shù),則MYSQL首先會返回符合zipcode='95054’的索引郭计,然后根據(jù)lastname LIKE '%etrunia%'和address LIKE '%Main Street%'來判斷索引是否符合條件霸琴。如果符合條件,則根據(jù)該索引來定位對應(yīng)的數(shù)據(jù)昭伸,如果不符合梧乘,則直接reject掉。 有了索引下推優(yōu)化庐杨,可以在有l(wèi)ike條件查詢的情況下选调,減少回表次數(shù)。