SqlServer添加索引

1. 聚集索引(Clustered Index)

  • 描述:表数据按照索引顺序实际存储。
  • 适用场景:数据经常需要排序或范围查询,比如按日期排序的查询。
  • 优点
    • 提高排序和范围查询性能。
    • 一个表只能有一个聚集索引,但可以在多列上创建(复合索引)。
  • 缺点
    • 更新、插入和删除操作可能较慢,因为需要维护数据排序。

2. 非聚集索引(Non-Clustered Index)

  • 描述:存储在单独的结构中,包含指向数据行的指针。
  • 适用场景:查找特定值或少量结果的查询,如基于唯一键或外键的查询。
  • 优点
    • 可以有多个非聚集索引,提高查找特定数据的速度。
  • 缺点
    • 可能占用更多存储空间。
    • 复杂的查询可能需要访问索引和数据两次(索引查找和行查找)。

3. 唯一索引(Unique Index)

  • 描述:确保索引列中的值是唯一的,可以是聚集索引或非聚集索引。
  • 适用场景:需要确保数据唯一性的场景,如用户ID、身份证号等。
  • 优点
    • 保证数据唯一性。
    • 提高查询性能(同非聚集索引)。
  • 缺点
    • 插入和更新操作需要检查唯一性,可能稍慢。

4. 筛选索引(Filtered Index)

  • 描述:非聚集索引的一种,仅包含满足特定条件的行。
  • 适用场景:查询某些条件下的数据,如仅索引活跃用户。
  • 优点
    • 索引更小,查询更快。
    • 减少索引维护开销。
  • 缺点
    • 只适用于特定条件下的查询,不适用于全表扫描。

5. 全文索引(Full-Text Index)

  • 描述:用于大文本字段的全文搜索。
  • 适用场景:需要对大文本字段进行复杂搜索的场景,如博客搜索。
  • 优点
    • 提供高效的全文检索能力。
    • 支持自然语言查询。
  • 缺点
    • 占用较多存储空间。
    • 建立和维护成本较高。

6. 列存储索引(Columnstore Index)

  • 描述:适用于数据仓库,通过按列存储数据来提高压缩率和查询性能。
  • 适用场景:适用于数据仓库和分析场景,尤其是大规模数据处理。
  • 优点
    • 高压缩率。
    • 快速的聚合查询性能。
  • 缺点
    • 不适合频繁的DML操作(插入、更新、删除)。

总结

  1. 频繁排序或范围查询:选择聚集索引。
  2. 查找特定值的查询:选择非聚集索引。
  3. 确保唯一性和加速查找:选择唯一索引。
  4. 特定条件下的查询:选择筛选索引。
  5. 全文搜索:选择全文索引。
  6. 大规模数据分析:选择列存储索引。

如何使用:

唯一索引

CREATE UNIQUE NONCLUSTERED INDEX UQ_UserId ON  YX_USERS (UserId);

相关推荐

  1. SqlServer添加索引

    2024-06-18 18:26:01       6 阅读
  2. SqlServer 全文索引

    2024-06-18 18:26:01       16 阅读
  3. sql返回数据怎么添加索引

    2024-06-18 18:26:01       17 阅读
  4. Mysql修改表结构、添加索引会锁表吗?

    2024-06-18 18:26:01       11 阅读
  5. sqlserver 触发器

    2024-06-18 18:26:01       33 阅读
  6. sqlserver 事务

    2024-06-18 18:26:01       26 阅读
  7. sqlserver 函数

    2024-06-18 18:26:01       24 阅读

最近更新

  1. DOM XMLHttpRequest

    2024-06-18 18:26:01       0 阅读
  2. nginx详解

    2024-06-18 18:26:01       0 阅读
  3. vue实现表单输入框数字类型校验功能

    2024-06-18 18:26:01       0 阅读
  4. Perl 语言入门学习

    2024-06-18 18:26:01       1 阅读
  5. perl语言入门学习

    2024-06-18 18:26:01       1 阅读
  6. Apache Spark 的基本概念和在大数据分析中的应用

    2024-06-18 18:26:01       1 阅读
  7. CSS 下拉菜单的设计与实现

    2024-06-18 18:26:01       1 阅读
  8. 快速排序算法Python实现

    2024-06-18 18:26:01       1 阅读
  9. python爬虫入门(二)之Requests库

    2024-06-18 18:26:01       1 阅读

热门阅读

  1. cephfs的形式使用ceph,大致思路

    2024-06-18 18:26:01       9 阅读
  2. Github 2024-06-16 php开源项目日报 Top10

    2024-06-18 18:26:01       5 阅读
  3. UE5 发射物目标追踪

    2024-06-18 18:26:01       5 阅读
  4. MYSQL

    MYSQL

    2024-06-18 18:26:01      5 阅读
  5. C#面:请解释C#接口的显式实现有什么意义

    2024-06-18 18:26:01       6 阅读
  6. 联合类型和交叉类型

    2024-06-18 18:26:01       7 阅读
  7. 每天一个项目管理概念之干系人

    2024-06-18 18:26:01       7 阅读
  8. linux常用指令

    2024-06-18 18:26:01       4 阅读
  9. 2024大数据面试题汇总(更新中。。。)

    2024-06-18 18:26:01       8 阅读