DB中的索引是什么?
#database #性能 #ruby #rails

什么是索引?

索引是提高搜索查询性能的数据库结构。它们像电话簿索引一样工作,您可以在这里快速查找一个人的电话号码,而不必浏览书中的每个条目。

以类似的方式,数据库索引有助于通过对存储在表的一个或多个列中的值进行排序的引用来加快搜索数据。这使得数据库检索数据更快,这对于大表或复杂查询尤其重要。

因此,每当执行查询时,数据库引擎都会搜索关键字的索引并从表中检索相应的行。这个过程比扫描整个表以找到匹配行要快得多。

索引的缺点

索引可以显着提高查询性能,但也有一些缺点。创建和维护索引需要时间和资源,它们可以消耗大量的存储空间。此外,索引实际上可以减慢写操作,因为每次插入,更新或删除行时都需要更新它们。

什么时候使用索引?

以下是一些示例,您可能想使用索引:

  1. 主键:创建表时,可以将一个或多个列指定为主键。这将在这些列上创建一个唯一的索引,该列用于强制执行主要的密钥约束并确保每行都有唯一的标识符。

  2. 外键:当您创建外键约束时,数据库引擎会在参考表中的外键列上自动创建索引。这加快了加入引用和引用表的查询。

  3. 经常搜索列:如果您的表有大量行和一个或多个经常搜索的列,则可以在这些列上创建索引来加快这些索引查询。

  4. 按条款订购:如果您的查询经常包含按子句按子句或组的订单,则可以在分类或分组的列上创建索引。<<<<<<<<<<<<<<<<< /p>

  5. 其中条款:如果您的查询经常包含一个基于特定值或值范围过滤结果的WHERE子句,则可以在列上创建索引。过滤。

重要的是要注意,并非所有列都需要索引。实际上,太多的索引实际上可以放慢性能,因为数据库引擎必须花更多的时间维护它们。最好根据查询的需求选择性地创建索引。