EN - FR - DE - ES - IT - PT -

LexiconDream

📇 索引

一种可以加快数据库记录检索速度的数据结构。

索引

索引可以加快数据检索速度。如果没有索引,数据库需要扫描每一行来查找匹配的记录。有了索引,它可以直接跳转到相关的行。索引是一种独立的数据结构,它将值映射到位置。书籍索引的工作原理也是如此。你查找一个词条,然后找到它的页码。你不需要翻阅每一页来查找。数据库也是如此。

索引是有代价的。它们会占用空间。由于索引也需要更新,因此会降低插入、更新和删除操作的速度。每次写入操作的成本都会增加。其好处是读取速度更快。对于读取密集型工作负载,索引至关重要。对于写入密集型工作负载,过多的索引会损害性能。选择要建立索引的列需要了解查询模式。WHERE 子句、JOIN 条件和 ORDER BY 子句中使用的列是理想的选择。低基数的列(例如布尔标志)则不是好的选择,因为索引无法有效缩小搜索范围。复合索引涵盖多个列,可以处理基于多个字段进行筛选的查询。复合索引中列的顺序很重要。数据库可以使用复合索引来处理仅基于前导列的查询,但不能仅处理基于后导列的查询。索引设计是一种权衡。目标是在不增加不必要的写入速度的前提下,加快关键查询的速度。

索引类型

索引是一种捷径。它牺牲写入速度和存储空间来换取读取速度。在对读取速度要求极高的场景下,应该使用索引。

Comments (3)

  1. Derek S.
    Database indexes are a tradeoff. They speed up reads but slow down writes and take up space. Knowing when to add one is an art.
  2. Pam L.
    A primary key automatically creates an index. That's something a lot of beginners don't realize.
  3. Chris T.
    Without an index the database has to scan every row. With one it can jump straight to the data. Huge performance difference.

Leave a comment