首页 新闻 会员 周边 捐助

很迷惑,来帮我看看

0
悬赏园豆:80 [已解决问题] 解决于 2009-09-26 09:16

1.要建索引,就必须要有主键,而主键又默认为聚集索引,不能修改,主键又是唯一的,像一条评论的id,所以只能将聚集索引建在这个id上,这是不是太无奈了,有没有什么好的想法?

2.建了聚集索引之后,通过聚集索引可以快速的查询,那么非聚集索引又有什么用处呢?

 

两点疑惑,请各位帮忙解答

zabery的主页 zabery | 初学一级 | 园豆:0
提问于:2009-09-20 09:13
< >
分享
最佳答案
0
收获园豆:40
Kinglee | 老鸟四级 |园豆:3158 | 2009-09-20 09:31
其他回答(2)
0

(1).你可以把id设为标识列,然后再设为主键。把需要修改的列设为唯一索引就行了。

(2)聚集索引可以快速的查询,但非聚集索引也一样,可以加快SQL语句的执行效率,减小CPU等使用。你可以在执行SQL语句的时候打开视图来查看,CUP的使用等.....一对比你就知道非聚集索引的好处了。

注意一点:非聚集引索只能在where后才有作用。

如:select * from 表名 where title="博客园" 。title是非聚集索引。

收获园豆:20
太平洋 | 园豆:141 (初学一级) | 2009-09-20 09:40
0

聚集索引,非聚集索引 2个都是索引 外部看起来没区别或者说区别仅仅在于查询速率

聚集索引只能建一个(组合索引也就算一个索引)

非聚集索引可以建立n个

 

内部结构

聚集索引是物理级别的索引

非聚集索引是逻辑上的索引

 

优点

可以提高查询效率

 

缺点

会降低添加和更新的时候的效率(因为添加和更新的时候会根据索引重新排序)

收获园豆:20
小眼睛老鼠 | 园豆:2731 (老鸟四级) | 2009-09-21 09:39
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册