zoukankan      html  css  js  c++  java
  • 建索引(尤其是主键)时请注意索引列的顺序

    在我们创建主键或者其他索引时,sql server总是自动将字段的顺序设置为升序排列;升序是默认设置,是为了保持与 SQL Server 早期版本的兼容性。建索引时索引列的顺序应该按照常用查询中的排序方式排序。

    我们做个试验创建一个表,其中主键上的聚集索引按照id倒叙排列,然后分别倒叙顺序select数据,比较select的时间:
    测试代码
    以下是查询时间结果
    查询时间(毫秒)
    393
    查询时间(毫秒)
    606
    按照和索引相同顺序从100万条数据中取50条时需要393毫秒,相反顺序时需要606毫秒。造成的性能影响还是挺大的。

    结论:
    在建索引时要考虑常用查询的排序方式,在建主键时要特别注意,因为sql server会自动按照升序来建,这时候如果您的查询多数用主键列倒叙排列,记得要修改一下默认的设置。

    参考资料:
    http://technet.microsoft.com/zh-cn/library/ms181154.aspx
    http://forums.microsoft.com/china/ShowPost.aspx?PostID=3307724&SiteID=15
  • 相关阅读:
    eclipse luna maven失效的原因
    利用线性探测法解决hash冲突
    PHP和JavaScript将字符串转换为数字string2int
    JavaScript 编程易错点整理
    使用phpstudy创建本地虚拟主机
    单例模式
    PHP使用cookie时遇到的坑
    Redis安装与配置
    CI框架2.x的验证码中所遇问题解决
    用delete和trancate删除表记录的区别
  • 原文地址:https://www.cnblogs.com/yukaizhao/p/create_index_order_by.html
Copyright © 2011-2022 走看看