摘要:垂直数据分区技术从逻辑上将满足一定语义条件的数据库表属性存放在同一个物理块中, 进而降低数据访问成本, 提高查询效率. 数据库查询负载中的每条查询通常只与数据库表中的部分属性有关, 因此只需使用数据库表的某个属性子集便可以得到准确的查询结果. 合理的垂直数据分区方式可以使大多数查询负载不需要扫描完整数据库就可以完成查询任务, 从而达到减少数据访问量, 提高查询处理效率的目的. 传统的数据库垂直分区方法主要基于专家设置的启发式规则, 分区策略粒度较粗, 且不能根据负载的特征进行有针对性的分区优化. 同时, 当负载规模较大或者属性个数较多时, 现有垂直分区方法执行时间过长, 尤其无法满足数据库在线实时调优的性能需求. 为此, 提出在线环境下基于谱聚类的垂直数据分区方法(spectral clustering based vertical partitioning, SCVP), 采用分阶段求解的思想, 减少算法时间复杂度, 加快分区执行速度. 首先通过增加约束条件缩小解空间(即根据谱聚类生成初始分区), 然后对解空间设计算法进行精细的搜索(即采用频繁项集和贪心搜索相结合的策略对初始分区进行优化). 为了进一步提升SCVP在高维属性下的性能, 提出了SCVP的改进版本SCVP-R (spectral clustering based vertical partitioning redesign). SCVP-R通过引入同域竞争机制、双败淘汰机制和循环机制, 对SCVP在分区优化过程中的合并方案进行了进一步的优化. 在不同数据集上的实验结果表明, 相比于目前最好的垂直分区方法, SCVP和SCVP-R有着更快的执行时间和更好的性能表现.