zoukankan      html  css  js  c++  java
  • SQL-索引的合理规划及索引失效

    索引的目的:提高查询性能;

    索引的弊端:1)对数据进行增删改操作时更慢,因为进行这些操作需要进行索引的维护,2)占用更多的磁盘空间;

    索引的建立,应该根据实际情况来选择:

    1:表是经常被读(取),还是被写(入),大多数表都是读取大于写入,建立索引是可以的,但一些特殊的表,如日志记录,是写入大于读取,因此不适合建索引;

    2:是否经常使用表的该列进行条件过滤查找?如:自我介绍;

    3:该列上行数据类型和大小:行数据类型越简单,比较速度快,空间小,不会有空间压力,适合建立索引,反之,不适合;

    4:各行数据分散(不重复)程度:重复度越高,无法建立一个高效的查询树;典型的就是BIT类型,都是0和1,没有索引价值,不要觉得少了1/2查询次数就够了,理想的索引,应该是指数级的性能优化;

    另:聚集索引是最高效的,应该把它作用在最常用最合适的列上(通常为ID列)

    索引失效

    即使创建了索引,也不能保证SQL Server一定会执行索引,原因来自:

    执行计划:主要作用是对查询进行优化,一条SQL查询(复杂查询)语句,可能有多种途径实现,执行计划会为我们选择一个最佳‘路径实现’;

    SQL Server会解析SQL语句,当明白我们查询目的时,自动生成执行计划,并根据执行计划进行查询;

    如果这篇文章,对你有帮助,请点击关注,我会持续更新......
  • 相关阅读:
    HashMap的理解
    红黑树
    No constructor found matching
    会话 控制终端 setsid
    信息表示和处理 from computer system chapter 2
    tcp keepalive
    TCP 四步挥手
    CS 课程
    close vs shutdown socket
    Linux time总结
  • 原文地址:https://www.cnblogs.com/-GoFurther/p/13734177.html
Copyright © 2011-2022 走看看