我正在开发一个具有相当大的 Oracle 数据库的项目(尽管我的问题同样适用于其他数据库)。我们有一个网络界面,允许用户搜索几乎任何可能的字段组合。
为了使这些搜索快速进行,我们正在为我们认为用户通常会搜索的字段和字段组合添加索引。但是,由于我们并不真正知道我们的客户将如何使用该软件,因此很难判断要创建哪些索引。
空间不是问题;我们有一个 4 TB 的 RAID 驱动器,我们只使用了其中的一小部分。但是,我担心索引过多可能会导致性能下降。因为每次添加、删除或修改行时都需要更新这些索引,所以我想在一个表上拥有数十个索引是个坏主意。
那么有多少索引被认为是太多了?10?25?50?还是我应该只涵盖真正、非常常见和明显的案例而忽略其他所有内容?