我在 DB2 数据库中有一个表,当前有 2000 万行,增长率为 200 万行/季度。此表用于频繁插入和选择(~2000 次搜索和每分钟 600 次插入),但根本没有更新。搜索查询有 4 列 FY、Q、C1、C2 作为 where 子句中的参数
FY=财政年度(例如201415,201213,....)
Q = 季度(第一季度、第二季度、第三季度、第四季度)
C1= 具有 150 万个唯一字符 (10) 值的列
C2= 某些具有 4 个唯一字符 (3) 值的列
使用上述列可以更快地插入和选择的最佳复合索引顺序是什么。(考虑索引页缓存和索引树扫描时间)。大多数搜索和插入仅在该季度的特定财年和季度(即当前财政年度和季度)发生。
此外,表分区和索引分区是否有助于此用例?如果需要澄清,请发表评论。
在这种情况下,这不是一个可以回答的问题,因为如果没有工作负载的完整详细信息,答案将始终取决于它。 所有解决方案都涉及权衡,关键是找到用户可以接受的内容。
选择正确的索引设计意味着了解命中此表的所有查询、每个查询的运行频率以及哪些查询必须具有更快的响应时间。