智能数据加载粒度优化技术解析
1. 数据库调优的关键方面
数据库调优主要聚焦于两个方面:索引和行组织。在某些系统中,通过用知识节点(KNs)替代标准索引来应对索引调优的挑战。KNs 体积更小且更易于重新计算,系统会自动维护大量多样化的 KNs,无需进行高级优化来选择最有用的子集和参数。
常见的提升查询效率的方法有:
- 数据分区/聚类 :将数据行根据多列的值进行分区,类似于数据挖掘中的聚类概念,但数据库中通常预先定义了特定簇的值范围。当数据库查询负载发生变化,需要修改簇定义时,数据需要一次性或逐步重新分区,然而逐步重新分区较难实现。
- 数据排序 :按照对查询至关重要的列对数据表进行排序。在典型的数据仓库场景中,这种数据处理可以在数据加载之前进行,或者作为数据库调优的内部阶段自动完成,还能维护多个以不同方式排序的部分数据副本,以更好地应对不同查询。但排序的计算成本较高,尤其是在新插入的行需要与旧数据同步时。而且在动态变化的工作负载下,可能没有适合新查询的数据副本,同时对某些列的排序可能会破坏其他列的规律性。
2. 数据聚类与本文方法的对比
在数据库和数据挖掘领域,聚类的理解有所不同。在数据挖掘中,聚类是基于相似性将行组织成簇,其聚类算法的结果描述更灵活,值范围是通过学习过程得出,而非预先设定。本文倾向于借鉴数据挖掘的一些思想,而非传统数据库研究方法。
数据挖掘中的聚类目标是将相似的数据项分组到对数据挖掘系统最终用户有实际意义的簇中。而本文将行划分为粗糙行(Rough Rows)的目标是协助查询优化/执行模块,通过 KN 描述与粗糙行自动通信。
超级会员免费看
订阅专栏 解锁全文
3万+

被折叠的 条评论
为什么被折叠?



