免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 9837 | 回复: 2
打印 上一主题 下一主题

WHERE IN 用不上索引? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-11-06 09:28 |只看该作者 |倒序浏览
mysql> show create table shajj_member;
+--------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table        | Create Table                                                                                                                                                                                                                                                                                                                                                   |
+--------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| shajj_member | CREATE TABLE `shajj_member` (
  `member_id` mediumint( NOT NULL auto_increment,
  `username` char(30) NOT NULL,
  `password` char(32) NOT NULL,
  `failure` tinyint(1) NOT NULL,
  `regtime` int(11) NOT NULL,
  PRIMARY KEY  (`member_id`),
  KEY `failure` (`failure`),
  KEY `regtime` (`regtime`)
) ENGINE=MyISAM AUTO_INCREMENT=18 DEFAULT CHARSET=utf8 |
+--------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql> explain SELECT * FROM shajj_member WHERE member_id  IN (16,10,9)\G;
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: shajj_member
         type: ALL
possible_keys: PRIMARY
          key: NULL
      key_len: NULL
          ref: NULL
         rows: 6
        Extra: Using where
1 row in set (0.00 sec)

ERROR:
No query specified


WHERE IN 用不上索引 ?

论坛徽章:
0
2 [报告]
发表于 2010-11-06 15:20 |只看该作者
估计你测试数据太少了,MYSQL优化器认为走索引的代价比全表扫描要来的大,所以全表扫描了

论坛徽章:
0
3 [报告]
发表于 2010-11-08 17:50 |只看该作者
回复 2# justlooks


    哦想起来了。 的确是有那么个情况。谢谢你
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP