我经常听说索引可以大大提高性能,但有时它们会降低性能。
除了使用内存外,它们如何降低性能?
如果我希望优化给定表的写入时间,但不关心读取时间,那么我最好不使用索引(PK除外)吗?
答案 0 :(得分:4)
写入和更新必须创建或修改索引值。因此,当表上有大量索引时,这些可能会更慢。如果你真的不关心阅读时间,那就不要使用索引。
然而,良好的索引将极大地提高读取性能,同时只会略微降低写入性能,所以只有在读取真的时才这样做,真的无关紧要。
答案 1 :(得分:3)
这是对的 - 如果你关心的都是写,你就不应该使用索引。任何索引都会减慢你的写作速度。
索引旨在提高读取性能。索引的一般概念是它以一种允许数据库引擎更快地访问它的方式存储频繁读取的数据,而不必扫描整个表来查找该数据。权衡是每次将索引数据写入表时,索引也必须更新。因此,索引可提高读取性能,但会降低写入性能。