1.为什么说每个表都要有索引和主键;问下如果我要加主键和索引理论上有没什么影响。
2.select * from newsKind where code='100' order by code desc;请问这个语句的order by用的code来排序算不算也是索引。
分享到:更多
------解决方案-------------------- 1.为什么说每个表都要有索引和主键;问下如果我要加主键和索引理论上有没什么影响。
不是“都要”,主键能保证数据的唯一性,而索引能给性能带来好处。加主键的话要保证列没有重复数据,加索引的话没有什么限制
2.select * from newsKind where code='100' order by code desc;请问这个语句的order by用的code来排序算不算也是索引。
如果code有索引,也会借用索引 ------解决方案-------------------- sqlserver的主键默认就带有聚集索引,聚集索引能借用预排序功能,在某些情景下能减少order by的开销。这句:select * from newsKind where code='100' order by code desc; 如果code上有聚集索引,能减少order by的开销,但是如果非必要的话,不要用select * ------解决方案-------------------- 另外,如何建索引,要看你的查询是如何操作表中的数据,就拿select code from newsKind where code='100' order by code desc;这个脚本,可以在code上建聚集索引,但是不一定是主键。注意我把*改成code了 ------解决方案-------------------- 加了查询快啊。
索引主要是为了效率,不加也可以啊。只要你能受得了查询慢。 ------解决方案-------------------- 加了不一定快,还要看数据的选择度 ------解决方案--------------------