不是添加聚集索引有这么一条规则么?:既不能绝大多数都相同,又不能只有极少数相同
那么。unique clustered是干嘛用的?岂不是违反了上述规则?还是说知识有那么个东西 但没有用的必要请大神说下.
Q1:unique clustered index在什么情况下使用?还是没有用的必要。
Q2:unique index 在什么情况下使用最好。
Q3:还有个问题想顺便问问.
比如说前台是一个高级查询吧。可以根据姓名、性别、年龄等组合查询User表,但也可以只使用其中的一两个;这就需要拼接Sql语句
if(userName !="")
sql += "userName=@userName";
else if(sex!="")
sql += "sex=@sex";
......
这种情况下是不是该放弃使用索引?PS:先在此谢过。
那么。unique clustered是干嘛用的?岂不是违反了上述规则?还是说知识有那么个东西 但没有用的必要请大神说下.
Q1:unique clustered index在什么情况下使用?还是没有用的必要。
Q2:unique index 在什么情况下使用最好。
Q3:还有个问题想顺便问问.
比如说前台是一个高级查询吧。可以根据姓名、性别、年龄等组合查询User表,但也可以只使用其中的一两个;这就需要拼接Sql语句
if(userName !="")
sql += "userName=@userName";
else if(sex!="")
sql += "sex=@sex";
......
这种情况下是不是该放弃使用索引?PS:先在此谢过。
2 唯一性约束?
3 name是精确匹配的话,name做索引就可以了;经常被查的,加入索引,查询会快,插入修改会慢
那clustered和unique clustered相比 除了重复值不算 在资源消耗或效率上有很大的区别吗?
我的意思是不能确定哪个条件被选择 name sex....都是前台选择的 可选一个 可选多个 还可以不选
而且都是精确匹配的
对于绝大多数值都相同的列来说,添加任何索引都可能是错误的,不但不能提高查询效率,还会造成系统性能下降,甚至数据无法访问。但是对于唯一性比较高的列来说,如果经常使用改列作为查询条件的话,建立索引是个比较明智的做法。但是聚集索引非常特殊,建立聚集索引时要特别考虑业务的情况。
建议你先看看索引的工作原理。也可以参考下这篇文章:
http://blog.csdn.net/yongsheng0550/article/details/3599563