通常会在创建索引时说出来。它使您的抓取速度更快,但同时它们会降低您的更新速度(删除,插入,更新),因为每个更新索引都要重新创建。
我心中有一个问题:如果数据库在更新操作之后更新其索引并从查询返回而不是查询执行速度如何减慢?在更新索引之后,在正常时间返回查询。我们可以说索引可能会导致数据库内部维护工作增加,但它们不应该增加更新查询时间。
答案 0 :(得分:1)
数据库索引使数据库更新同时变慢和变快。这取决于更新语句:
当您对update mytable set mycolumn = 4711
之类的所有行进行更新时,创建索引会减慢更新速度,因为这需要一些额外的工作。
当您使用条件条件为update mytable set mycolumn = 4711 where mycolumn = 123
的update语句时,由于数据库无需进行全表扫描,因此可以通过现有索引来加快更新速度,而可以使用现有索引在柱上。
因此从上面可以说插入总是会慢一些
此外,您还可以从上面说出delete的with where子句也将更快。
最后但并非最不重要的选择将更快!
索引的要点是它们是一种折衷方案-您应该从发送给数据库的所有语句的平均视图中查看它们-很好地选择索引后,它们将大大加快数据库访问速度。没有索引,大多数事情(选择,更新,删除)会慢很多。因此,您真的不必担心索引可能会导致插入速度变慢。
如果您的更新存在性能问题,则应首先检查更新的where子句是否会进行全表扫描,从而减慢更新速度!