1

我经常听说索引可以大大提高性能,但有时它们会降低性能。

除了使用内存之外,它们如何降低性能?

如果我希望优化给定表的写入时间,但不关心读取时间,我最好不使用索引(PK 除外)吗?

4

2 回答 2

4

写入和更新必须创建或修改索引值。因此,当表上有很多索引时,这些可能会变慢。如果您真的根本不关心阅读时间,请不要使用索引。

然而,好的索引会极大地提高读取性能,而只会稍微降低写入性能,所以只有在读取真的非常不重要时才这样做。

于 2013-04-08T13:41:15.483 回答
3

没错——如果你只关心写,你就不应该使用索引。任何索引都会减慢您的写入速度。

索引旨在提高读取性能。索引的一般概念是,它以允许数据库引擎更快地访问它的方式存储经常读取的数据,而无需扫描整个表来查找该数据。权衡是每次将索引数据写入表时,索引也必须更新。因此,索引提高了读取性能,但降低了写入性能。

于 2013-04-08T13:40:27.327 回答