1.測試聯合索引的最左原則的時候, 發現了5.6版本後的新特性Index Condition Pushdown 2.含義就是存儲引擎層根據索引儘可能的過濾數據,然後在返回給伺服器層根據where其他條件進行過濾 3.比如我有這樣的聯合索引 KEY `name_gid_age_index` (`nam ...
1.測試聯合索引的最左原則的時候, 發現了5.6版本後的新特性Index Condition Pushdown
2.含義就是存儲引擎層根據索引儘可能的過濾數據,然後在返回給伺服器層根據where其他條件進行過濾
3.比如我有這樣的聯合索引 KEY `name_gid_age_index` (`name`,`gid`,`age`) , 查詢的時候where name='taoshihan' and age=1 , 沒有按順序連續查條件, 後面那個age就用不到索引
4.這時就會出現下麵的情況
CREATE TABLE `index_test` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(100) NOT NULL DEFAULT '', `gid` int(11) NOT NULL DEFAULT '0', `age` int(11) NOT NULL DEFAULT '0', `score` int(10) unsigned NOT NULL DEFAULT '0', PRIMARY KEY (`id`), KEY `name_gid_age_index` (`name`,`gid`,`age`), KEY `score_index` (`score`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8
5. type值為range、 ref、 eq_ref或者ref_or_null的時候 , 會使用到索引條件下推技術