鍍金池/ 問答/Java  數(shù)據(jù)庫  HTML/ <高性能mysql> 索引相關(guān)的疑問

<高性能mysql> 索引相關(guān)的疑問

下圖中標(biāo)紅的部分表達(dá)的是什么意思?

Extra中的Using where 是指在索引中使用了過濾? 還是說在索引中篩選完之后使用了過濾? 看不太懂

個(gè)人理解 type為range 并且 extra中有using index 所以肯定只是掃描了索引, 并且using where是在索引中進(jìn)行的過濾 ;
只有當(dāng)type為all,extra中只有using where的時(shí)候, 才是回表掃描并在表中進(jìn)行的過濾!
不知道理解的對(duì)么?

圖片描述

回答
編輯回答
法克魷

你看看 mysql 架構(gòu),存儲(chǔ)引擎在最底層,actor_id<5 存儲(chǔ)引擎就 using index(actor_id)了,但是引擎使用的索引不能過濾所有無效行(<>這個(gè)條件不能發(fā)送給存儲(chǔ)引擎),所以獲得數(shù)據(jù)返回給mysql服務(wù)層,這一層using where 解析 <> 1 。
mysql5.6之后的ICP特性,可以把檢查條件比如<>發(fā)送給存儲(chǔ)引擎層,不符合條件的數(shù)據(jù)不讀取。

2018年6月20日 13:12