小编Mar*_*and的帖子

数据库在什么时候更新其事务中的索引?

我试图了解插入中涉及索引和事务的事件序列。

例如,Oracle 文档指出:

如果在加载数据之前创建 [或拥有] 一个或多个索引,则数据库必须在插入每一行时更新每个索引。

但是如果我创建一个事务,插入五行,然后提交会发生什么?索引是为每次插入更新还是仅在提交点更新?

逻辑告诉我,它们只会在提交点更新,因为在提交这些记录之前,更新的索引不可能有用。但这是真的吗?

如果是这样,当我有 1m 行要插入时,为了获得最佳性能,我应该对所有行进行一次大型提交,而不是对 100k 条记录进行 10 个事务?当然,我意识到如果第 999,999 行失败,这会带来更大的回滚风险。

如果我的术语有点过时,请见谅。我不是贸易 DBA。我对某个特定的数据库并不那么感兴趣,因为我对一般的数据库感兴趣,尽管 Oracle 和 Postgres 是我最常用的。我已经搜索过这个主题,但无法真正找到明确的答案。

performance index transaction

12
推荐指数
1
解决办法
8137
查看次数

标签 统计

index ×1

performance ×1

transaction ×1