MySQL - 索引
索引是一种数据结构,可以提高数据库表的操作速度。它们是一种指向数据的特殊查找表。索引可以创建在一个或多个列上,为快速随机查找和高效的记录访问排序奠定基础。
然而,索引会降低表的插入和更新操作的效率。这是因为当我们在表中插入或更新数据值时,索引也需要进行相应的修改。因此,索引并不总是合适的。
用户无法看到索引,它们只是用来加速查询,数据库搜索引擎会使用它们来快速定位记录。
MySQL 索引的类型
索引可以定义在 MySQL 表的单个或多个列上。是否在表列上添加索引取决于需要搜索的数据类型。MySQL 提供以下类型的索引 -
简单索引
唯一索引
主键索引
全文索引
降序索引
简单索引
简单索引是一种基本类型的索引,插入到包含此索引的列中的值易于搜索。在这种情况下,该列可以包含重复值或 NULL。
唯一索引
唯一索引不允许在定义索引的表列中插入任何重复值。它可以添加到表的单个或多个列中。如果将其添加到单个列,则该列的值必须是唯一的。但是,如果将其添加到多个列,则这些列中的值的组合必须是唯一的。
主键索引
主键索引是唯一索引的扩展,因为主键列必须始终包含唯一值,并且这些值不能为 NULL。主键可以设置为数据库表的单个列,也可以设置为多个列(不建议这样做)。
全文索引
在数据库中,有时您需要搜索文本块而不是记录。您可以使用全文索引。顾名思义,它用于简化表中的文本搜索。
降序索引
降序索引仅在 MySQL 8.0 之后的版本中可用。它是一种用于以相反顺序存储数据的简单索引。使用此索引,可以轻松搜索插入数据库表的最新值。