我發現一個有趣的案例在MySQL查詢SQL與前綴字符串匹配;一個滑稽的案例爲mysql查詢「喜歡'xx'」
我創建了這樣的表;
CREATE TABLE `EpgInfo` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`title` varchar(100) NULL NOT NULL DEFAUL '',
PRIMARY KEY (`id`),
KEY `title` (`title`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
然後,我插入1,000,000行數據的隨機列標題,其長度小於20
我使用3個SQLS這樣的:
- SQL#1:
select * from EpgInfo2 where title like "快" limit 1;
- SQL#2:
select * from EpgInfo2 where title = "中" limit 1;
- SQL#3:
select * from EpgInfo2 where title like "中" limit 1;
而且我發現:
- SQL#1成本0.2S。
- SQL#2和SQL#3的成本爲0.0s。 我用
%handl%
的顯示狀態來創建查詢計劃,我發現SQL#1掃描所有索引數據,SQL#2和SQL#3沒有。
爲什麼?
這3個sqls在我的數據中都沒有結果 – user1010434 2012-07-09 03:24:47