【问题标题】:Do non-clustered indexes slow down inserts?非聚集索引会减慢插入速度吗?
【发布时间】:2011-02-23 10:21:34
【问题描述】:

我在 Sql Server 2005 中工作。我有一个跟踪用户操作的事件日志表,我想确保尽可能快地插入到表中。目前该表没有任何索引。添加单个非聚集索引会减慢插入速度吗?还是只有聚集索引会减慢插入速度?还是我应该只添加一个聚集索引而不用担心它?

【问题讨论】:

    标签: sql-server-2005 database-indexes


    【解决方案1】:

    索引,无论是集群的还是非集群的,总是会减慢插入速度,因为 SQL 必须同时维护表和索引。这种减速是“绝对”意义上的,你可能没有注意到。我会添加任何必要的索引来检索您的数据。

    【讨论】:

    • 假设检索比写入速度更重要...假设您从 UDP 流中捕获数据并且写入速度下降意味着数据包捕获丢失...但您只需要查询来自 ET 的联系方式...
    【解决方案2】:

    是的,在执行INSERT, UPDATE, DELETE 操作时,任何索引都需要一点时间来保持最新状态。您拥有的索引越多,我们讨论的时间就越多。

    但最终这取决于对您来说更重要的是什么 - 良好的查询性能(然后根据需要添加索引)或良好的插入性能(然后尽可能少的索引)。

    您经常执行哪种操作?

    【讨论】:

    • 我想知道如果这两个问题同时发生会发生什么。我有一个数据仓库类型的数据库,我需要非常频繁的插入,还需要从中执行报告查询。报表查询需要一些索引才能很好地执行,但这可能会同时减慢插入语句。我正在使用 MySQL(MISAM)。
    猜你喜欢
    • 2019-03-02
    • 1970-01-01
    • 2011-01-09
    • 2013-06-04
    • 2021-11-07
    • 2011-01-03
    • 2016-08-28
    • 2018-11-22
    • 2012-02-25
    相关资源
    最近更新 更多