欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

mysql查詢in的用法,為什么MySQL的IN操作在大于3個操作數(shù)時(shí)不用索引

李中冰2年前24瀏覽0評論
mysql查詢in的用法,為什么MySQL的IN操作在大于3個操作數(shù)時(shí)不用索引?

1,從MySQL5.6版本開始,對where in做了優(yōu)化,是走索引的,用EXPLAIN 分析你的SQL,你會發(fā)現(xiàn)type 都是 range,表示使用索引范圍查詢, 通過索引字段范圍獲取表中部分?jǐn)?shù)據(jù)記錄。

2,在MySQL5.5版本中,where in雖然不會走索引,但該版本在下面這種情況下對where in是做了優(yōu)化的,比如select * from a where I'd in (select a_id from b) 會優(yōu)化為 select * from a where exists(select * from b where b.a_id=a.id);

exists 相關(guān)子查詢的執(zhí)行原理是:循環(huán)取出 a 表的每一條記錄與 b 表進(jìn)行比較,比較的條件是 a.id=b.id。看 a 表的每條記錄的 id 是否在 b 表存在,如果存在就行返回 a 表的這條記錄。