经常看到一种说法,数据仓库中的数据更新不频繁数据量大,适合建立索引加快检索速度。但是我个人认为是否适合建索应该由实现业务的SQL语句来决定。虽然数据仓库中的数据更新频率低数据量大,但是数据仓库中存储的是海量的历史和当前来自生产系统的数据,保留这些数据的初衷是希望通过对历史和当前数据的遍历做统计汇总(报表)或者发现隐藏在数据中的规律(挖掘)。大多数数据仓库运用需要扫描表中大部分的数据。
在我们的生产系统中索引使用的不多,因为我们经常根据用户的状态、用户标签、装拆机时间等扫描表中的数据,在这种重复值非常多的字段上面建立索引显然没有意义。如果需要在表的物理设计方面使SQL的访问性能更好,可以考虑大表拆小表、表分区、表压缩、数据库分区(DPF)。另外为了加快排序而建立索引也值得讨论,索引建立了排序会使用索引吗?排序是否有必要(在我的工作环境中做排序做的最多的就是为了去重)。
所以建立索引之前需要多方面考虑,是否真的有必要建立索引,索引不是万能的。
添加新评论3 条评论
2013-10-22 14:40
2013-10-11 09:01
2013-10-10 21:22