zoukankan      html  css  js  c++  java
  • SQL——索引

    1. 什么是索引

        索引是SQlServer编排数据的内部方法,是检索表中数据的直接通道。它类似汉语词典里面

    的拼音目录,通过它可以快速查找到某个字词。

        索引页是数据库中存储说要的数据页。索引页存放检索数据行的关键字页及数据行的地址指针。索引页类似于汉语字典中按拼音或笔画排序的目录页。

    2. 索引分类

        唯一索引: 创建唯一约束会自动创建唯一索引。 它对应的列中仅允许有一个null值。

       主键索引: 是唯一索引的一种特殊类型。创建主键会自动创建主键索引。 要求主键中的每个值是非空,唯一的。

       聚集索引: 表中各行的物理顺序与键值的逻辑顺序相同。

       非聚集索引: 表中各行数据存放的物理顺序与键值的逻辑顺序不匹配。聚集索引比非聚集索引有更快的数据访问速度。

       复合索引: 将多个列组合作为索引

       全文索引: 是一种特殊类型的寄语标记的功能型索引,由SQL server 中全文引擎服务创建和维护。

    3. 创建索引

       方法一: 使用 SSMS 创建索引

       方法二: 使用T-SQL语句创建

       语法:

          create  [unique] [clustered  |   nonclustered]  index  index_name

          on  table_name  (column_name[, column_name] ...)

          [with  fillfactor=x]

         说明: fillfactor 表示填充因子, 指定一个1-100的值,该值指定索引页填充的空间所占的百分比。

    4. 查看索引

        方法一: 用系统存储过程 sp_helpIndex查看

                   exec  sp_helpIndex  表名

        方法二: 用视图 sys.indexes 查看

            use  database

                    select * from sys.indexes

    5. 删除索引

       if  exists (select name from sysindexes  where name = index_name)

                 drop index table.index_name

    6. 注意事项

         针对以下情况创建索引:

              频繁搜索的列

             经常用作查询选择的列

             经常排序、分组的列

             经常用作连接的列(主外键)

        针对以下情况不创建索引:

              仅包含几个不同值的列

               表中仅包含几行数据

        经验:

               查询是尽量少用 "*" 返回全部列,不要返回不需要的列

               索引尽量在字节数少的列上建立索引

         where 字句中有多个表达式时,包含索引列的表达式应置于其他料件表达式之前

               避免在order by 子句中使用表达式

               根据业务数据发生频繁,定期重新生成或重新组织索引,进行碎片整理

         

  • 相关阅读:
    Spring MVC全局异常后返回JSON异常数据
    spring mvc 异常统一处理方式
    Duplicate fragment name ERROR Jetty Maven Plugin
    Android中自己定义组件和它的属性
    stl非变易算法(二)
    unix more命令
    g711u与g729比較编码格式
    MD5的加密和解密(总结)
    js 定义类对象
    润乾报表实现可反复分组报表及改进
  • 原文地址:https://www.cnblogs.com/jameslif/p/6909844.html
Copyright © 2011-2022 走看看