中科院仪器设备共享管理平台(以下简称为SAMP)系统有效解决了各科研单位间仪器设备管理封闭、共享困难和运行效率低的棘手问题.同时,可以及时了解各类仪器的使用情况、共享情况,为各级业务主管部门展开科学高效的管理工作提供良好的决策依据.当SAMP系统应用数据库中存储的数据量达到百万级时,对数据库中预约表和用户表(或仪器表)进行连接查询时,将导致数据表查询性能的下降,从而影响整个SAMP系统的性能.目前主流的解决方案是采用Hash取模算法对数据表进行水平切分,但预约表中的主键为自动递增的整数,并没有实际意义,所以优化效果不理想.由于预约的用户和被预约的仪器在地理区域上呈现一定的聚集性,因此本文提出了一种基于K-means聚类算法的分表策略,采用该策略能够将预约表的查询性能提升至少70%.
1