复合索引有什么作用?

zj521241 2005-05-29 11:26:46
在书上看到这样一段话:用户可以在多个列上建立索引,这种索引叫做复合索引。复合索引的创建方法与创建单一索引的方法完全一样。但复合索引在数据库操作期间所需的开销更小,可以代替多个单一索引。当表的行数远远大于索引键的数目时,使用这种方式可以明显加快表的查询速度。
--------------------------------------
“但复合索引在数据库操作期间所需的开销更小,可以代替多个单一索引。当表的行数远远大于索引键的数目时,使用这种方式可以明显加快表的查询速度。”这句话看不懂,哪位大侠解释下,感激~~
...全文
256 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zj521241 2005-05-30
  • 打赏
  • 举报
回复
我告诉你吧:
是这样的,
1。你的索引这样创建
create index yourindex on yourtable(id,name,city)
2.当你在查询的时候
select id,name,city
from yourtable
这时候查询优化器,不在扫描表了,而是直接的从索引中拿数据,因为索引中有这些数据,这叫覆盖式查询,这样的查询速度非常快。
------------------------------------------
明白了,谢谢~~
luoguofei 2005-05-29
  • 打赏
  • 举报
回复
在where 条件中字段用索引,如果用多字段就用复合索引。一般在select的字段不要建什么索引。根据where条件建索引才是最好的。注意不要过多用索引,否则对表更新的效率有很大的影响,因为在操作表的时候要化大量时间花在创建索引中
duanduan1122 2005-05-29
  • 打赏
  • 举报
回复
明白了,这就是复合索引的最大好处。
duanduan1122 2005-05-29
  • 打赏
  • 举报
回复
我告诉你吧:
是这样的,
1。你的索引这样创建
create index yourindex on yourtable(id,name,city)
2.当你在查询的时候
select id,name,city
from yourtable
这时候查询优化器,不在扫描表了,而是直接的从索引中拿数据,因为索引中有这些数据,这叫覆盖式查询,这样的查询速度非常快。
zj521241 2005-05-29
  • 打赏
  • 举报
回复
联机帮助里没找到,郁闷啊~
天地客人 2005-05-29
  • 打赏
  • 举报
回复
我也只是知道,但不明确,可以看看联机帮助!

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧