--- title: Indexes localeTitle: 索引 --- ## 索引 **数据库索引**是一种数据结构,可提高数据库表上数据检索的效率。数据库表可以具有多个索引,并且可以在数据库表的一个或多个列上创建索引。 ### 索引如何工作? 现在想象一下,你所在的图书馆没有以预定的顺序排列书籍。如果您的任务是找到一本书,那么您必须逐个架子找到它。当只有几本书架时,这可能会很好,但如果它是一个多层图书馆,这个过程非常耗时。 另一方面,假设书籍现在由作者的姓氏排列。如果你知道你正在搜索的书的作者的姓氏,例如“Carnegie”,你可能会寻找“C”的搁置,然后在特定的书架内搜索。你已经避免了经历每一个架子。 ### 权衡 如前所述, **索引**是数据结构,因此占用存储空间。定义的索引越多,维护数据结构所占用的存储空间就越多。另一个成本是以附加更新(或写入)的形式,以使索引保持最新。将新记录添加到具有索引的表时,需要额外写入来更新索引数据结构。 #### 更多信息: [数据库索引](https://en.wikipedia.org/wiki/Database_index)