教育/培训 查询

Informix中如何让查询只扫描索引不扫描表?

设想我有一个学生表 T_STUDENT, 有三列 ID int, name varchar(30), score int;
里面存储上百万条记录,其中ID不重复,name有重复。

如果我需要根据姓名查找成绩, SQL如下:
select name, score from T_STUDENT where name = 'aaa0004';

如何做到key-only index scan?

谢谢!

PS:在SQL SERVER中,创建索引时可以用INCLUDE,那么可以创建索引
create index idx_name on T_STUDENT
(name asc)
include (score)
这样只扫描索引就可以了,INFORMIX似乎做不到,请指教
参与4

4 同行回答

liaosnet liaosnet 信息分析/架构师 gbasedbt.com
。。。。不需要改varchar为char,也可以建复合索引。。显示全部
。。。。不需要改varchar为char,也可以建复合索引。。 收起
IT咨询服务 · 2012-09-17
浏览452
caimao caimao 程序员 亿阳信通
又学了一招啊显示全部
又学了一招啊 收起
IT分销/经销 · 2012-09-17
浏览450
光洋山 光洋山 数据库架构师 金融科技公司
和数据类型应该没有关系,index-only,需要把select语句中返回的clomn和where条件的column都在索引中出现即可。创建复合索引即可。显示全部
和数据类型应该没有关系,index-only,需要把select语句中返回的clomn和where条件的column都在索引中出现即可。创建复合索引即可。 收起
软件开发 · 2012-03-31
浏览465
informix-master informix-master 程序员 爱码科技
已经搞定了,把name的类型从varchar改为char,然后创建复合索引(name, score)就可以了。原来是数据类型的问题显示全部
已经搞定了,把name的类型从varchar改为char,然后创建复合索引(name, score)就可以了。

原来是数据类型的问题 收起
教育/培训 · 2012-03-29
浏览462

提问者

informix-master
程序员 爱码科技
评论4

相关问题

问题状态

  • 发布时间:2012-03-29
  • 关注会员:0 人
  • 问题浏览:2806
  • 最近回答:2012-09-17
  • X社区推广