非聚集索引会减慢插入速度吗?
Posted
技术标签:
【中文标题】非聚集索引会减慢插入速度吗?【英文标题】:Do non-clustered indexes slow down inserts? 【发布时间】:2011-02-23 10:21:34 【问题描述】:我在 Sql Server 2005 中工作。我有一个跟踪用户操作的事件日志表,我想确保尽可能快地插入到表中。目前该表没有任何索引。添加单个还是只有聚集索引会减慢插入速度?还是我应该只添加一个聚集索引而不用担心它?
【问题讨论】:
【参考方案1】:索引,无论是集群的还是非集群的,总是会减慢插入速度,因为 SQL 必须同时维护表和索引。这种减速是“绝对”意义上的,你可能没有注意到。我会添加任何必要的索引来检索您的数据。
【讨论】:
假设检索比写入速度更重要...假设您从 UDP 流中捕获数据并且写入速度下降意味着数据包捕获丢失...但您只需要查询来自 ET 的联系方式...【参考方案2】:是的,在执行INSERT, UPDATE, DELETE
操作时,任何索引都需要一点时间来保持最新状态。您拥有的索引越多,我们讨论的时间就越多。
但最终这取决于对您来说更重要的是什么 - 良好的查询性能(然后根据需要添加索引)或良好的插入性能(然后尽可能少的索引)。
您经常执行哪种操作?
【讨论】:
我想知道如果这两个问题同时发生会发生什么。我有一个数据仓库类型的数据库,我需要非常频繁的插入,还需要从中执行报告查询。报表查询需要一些索引才能很好地执行,但这可能会同时减慢插入语句。我正在使用 mysql(MISAM)。以上是关于非聚集索引会减慢插入速度吗?的主要内容,如果未能解决你的问题,请参考以下文章