SQL——索引

简介: 原文:SQL——索引  1. 什么是索引     索引是SQlServer编排数据的内部方法,是检索表中数据的直接通道。它类似汉语词典里面 的拼音目录,通过它可以快速查找到某个字词。     索引页是数据库中存储说要的数据页。
原文: 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 子句中使用表达式

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

      

 

目录
相关文章
|
1月前
|
SQL 存储 数据库
sql事务、视图和索引
sql事务、视图和索引
14 0
|
1月前
|
SQL 存储 弹性计算
GaussDB SQL调优:建立合适的索引
GaussDB SQL调优:建立合适的索引
12 0
|
2月前
|
SQL 索引
SQL索引小结
SQL索引小结
18 0
|
3月前
|
SQL 存储 关系型数据库
sql语句,索引,视图,存储过程
sql语句,索引,视图,存储过程
30 0
|
1月前
|
存储 关系型数据库 MySQL
最全MySQL面试60题(含答案):存储引擎+数据库锁+索引+SQL优化等
最全MySQL面试60题(含答案):存储引擎+数据库锁+索引+SQL优化等
169 0
|
4月前
|
SQL 数据库 数据安全/隐私保护
SQL Server 数据操控,视图和索引
SQL Server 数据操控,视图和索引
99 0
|
7月前
|
SQL 索引 OceanBase
OBCP第四章 SQL调优-局部索引与全局索引
OBCP第四章 SQL调优-局部索引与全局索引
79 0
|
5月前
|
SQL 关系型数据库 MySQL
MySql数据库中的视图,索引与数据库sql脚本如何导入与导出---(详细介绍)
MySql数据库中的视图,索引与数据库sql脚本如何导入与导出---(详细介绍)
243 0
|
3月前
|
存储 SQL 缓存
4.2.1 SQL语句、索引、视图、存储过程
4.2.1 SQL语句、索引、视图、存储过程
|
3月前
|
SQL 关系型数据库 MySQL
SQL提示与索引终章
SQL提示与索引终章

热门文章

最新文章