1

一个以 Oracle 作为 DataStore 的全新应用程序将在生产中推出。数据库使用CBO,我已经确定了一些列来进行索引。我预计 6 个月后特定表中的记录总数为 400 万。之后将添加很少的记录,并且索引列的记录中不会有任何更新。我的意思是大多数更新将在 NonIndexed 列上。

现在创建索引是否可取?还是我需要等几个月?

4

1 回答 1

1

如果表需要索引,那么在表中的行数超出可能合理保留的缓存数之后,您将招致很多性能不佳(全表扫描 + 实际 I/O)。假设是 20000 行。我们称之为幻数。您在一周的生产中达到了 20000 行。之后,平均而言,随着添加更多行,对表的查询和更新将逐渐变慢。

您可能担心插入带有索引字段的新行的开销。那是一次性的打击。当您延迟添加索引时,您需要针对数十个查询和更新进行交易。

权衡主要有利于现在添加索引。特别是因为我们不知道那个神奇的数字(20000?)到底是什么。可以更大。或者更小。

于 2013-05-08T08:15:37.030 回答