数据库索引主要种类

唯一索引

唯一索引

唯一索引可以保证一个或多个列的值在数据表中唯一。唯一索引要求索引列的值不能重复,在创建唯一索引时,如果有重复值,索引将无法创建成功,因此在设计数据表时,需要考虑到唯一性约束。

主键索引

主键索引

主键索引要求数据库表中每行数据都必须有一个唯一的标识,这个标识被称为主键。主键索引可以加速数据表的查找和数据的更新操作,同时保证数据表的记录唯一性和数据完整性。

聚集索引

聚集索引

聚集索引将数据行和索引存储在一起,可以按照数据表的主键或者唯一索引来组织数据表的物理存储方式。每个数据表只能有一个聚集索引,相比于非聚集索引,聚集索引数据访问速度更快。

数据库索引的优缺点

创建数据库索引的优点及其局限性包含以下几方面:

  • 提高查询效率:索引可以加速查询速度,提升数据库的性能;
  • 保证数据的唯一性:通过数据库索引可以限制重复值的插入,保证数据的唯一性;
  • 快速排序和分组:使用数据库索引可以大幅提升表与表之间的跳转速度,加快排序和分组操作过程;
  • 占用大量磁盘空间:创建数据库索引需要占用磁盘空间,因此当索引数量增多时,磁盘空间会被大量占用;
  • 创建维护耗时长:当数据量巨大时,创建和维护数据库索引会耗费大量的时间。

哪些情况需要创建索引

常见的需要创建数据库索引的情况包括:

  • 参考表的数据分布和查询频率:如果一个表的数据分布均匀,但某些列的查询频率很高,那么可以考虑为这些列创建索引;
  • 遵循常见的索引使用规则:可以为经常用于连接的列创建索引,避免在索引列上使用函数等操作,提高查询效率;
  • 观察慢查询日志:通过观察慢查询日志,如果发现某个 SQL 语句的执行时间过长,则可能是因为没有对相应的列创建索引,以此判断是否需要进行创建。

亚马逊云科技热门云产品

Amazon DynamoDB

Amazon DynamoDB

快速灵活的 NoSQL 数据库服务,适合在任何规模下使用

Amazon DocumentDB(兼容 MongoDB)

Amazon DocumentDB(兼容 MongoDB)

快速、可扩展、高度可用的 MongoDB 兼容数据库服务

Amazon Neptune

Amazon Neptune

为云构建快速、可靠的图形数据库

Amazon MemoryDB for Redis

Amazon MemoryDB for Redis

与 Redis 兼容的、持久的内存数据库服务,可实现超快性能

欢迎加入亚马逊云科技培训中心

欢迎加入亚马逊云科技培训中心

从 0 到 1 轻松上手云服务,获取更多官方开发资源及培训教程
从 0 到 1 轻松上手云服务,获取更多官方开发资源及培训教程
  • 快速上手训练营
  • 第一课:亚马逊云科技简介

    本课程帮助您初步了解云平台与本地环境的差异,以及亚马逊云科技平台的基础设施和部分核心服务,包括亚马逊云科技平台上的弹性高可用架构,架构设计准则和本地架构迁移上云的基本知识。

    亚马逊云科技技术讲师:李锦鸿

    第二课:存储与数据库服务

    您将在本课程中学习到亚马逊云科技上的三个存储服务分别是什么。我们也将在这个模块中为您介绍亚马逊云科技上的关系型数据库服务 Amazon Relational Database Service (RDS)。

    亚马逊云科技资深技术讲师:周一川

    第三课:安全、身份和访问管理

    在这个模块,您将学习到保护您在亚马逊云科技上构建的应用的安全相关知识,责任共担模型以及身份和访问管理服务, Identity and Access Management (IAM) 。同时,通过讲师演示,您将学会如何授权给 EC2 实例,允许其访问 S3 上的资源。

    亚马逊云科技技术讲师:马仲凯
  • 账单设置与查看
  • 视频:快速完成税务设置

    部署时间:5 分钟

    视频:账户账单信息

    部署时间:3 分钟

    视频:如何支付账单

    部署时间:3 分钟

  • 动手实操
  • 快速上手云上无服务器化的 MySQL 数据库

    本教程将引导您创建一个Aurora Serverless 数据库并且连接上它。

    部署时间:10 分钟

    启动一台基于 Graviton2 的 EC2 实例


    本教程将为您讲解如何在云控制台上启动一台基于 Graviton2 的 EC2 实例。

    部署时间:5 分钟

    使用 Amazon Systems Manager 进行云资源统一跟踪和管理

    在这个快速上手教程中,您将学会如何使用 Amazon Systems Manager 在 Amazon EC2 实例上远程运行命令。

    部署时间:10 分钟