一个有趣的案例为mysql查询“喜欢'xx'”
我在MySQL查询SQL中找到一个有前缀字符串匹配的有趣案例;
我创建了这样的桌子;
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
然后,我为长度小于20的随机列标题插入了1,000,000行数据。
我使用了3个这样的SQL:
select * from EpgInfo2 where title like "快" limit 1;
select * from EpgInfo2 where title = "中" limit 1;
select * from EpgInfo2 where title like "中" limit 1;
我发现:
%handl%
显示状态来创建查询计划,我发现SQL#1扫描所有索引数据,SQL#2和SQL#3没有。 为什么?
使用EXPLAIN
来查看MySQL如何处理查询,它可能会给你一个线索。
另外,尝试一些其他字符。 也许MySQL错误地将其中的一个解释为具有百分号。
“快”与“中”的“远”究竟是多少?
如果“中”是第一行,那么只需要查看第二行和第三行的一行。
如果另一个是最后一行,则需要扫描整个表格。
链接地址: http://www.djcxy.com/p/10959.html上一篇: a funny case for mysql query " like 'xx' "
下一篇: How can I hunt down these OpenGL calls that are distorting objects in my scene?