[发明专利]一种数据处理方法及装置在审
申请号: | 201611164955.6 | 申请日: | 2016-12-15 |
公开(公告)号: | CN108228634A | 公开(公告)日: | 2018-06-29 |
发明(设计)人: | 杨洋;张金玉;黄海燕 | 申请(专利权)人: | 杭州华为数字技术有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 深圳市深佳知识产权代理事务所(普通合伙) 44285 | 代理人: | 王仲凯 |
地址: | 310052 浙江省杭州*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 排序数据 排序算法 特征信息 数据处理 排序 数据库 匹配 | ||
本发明实施例公开了一种数据处理方法及装置,能够通过从数据库中得到待排序数据的特征信息来判断是否能够采用线性排序算法,从而提升数据库的排序性能。本发明实施例方法包括:获取待排序数据的特征信息;当根据所述待排序数据的特征信息从特征信息与线性排序算法的对应关系中匹配到目标线性排序算法时,按照所述目标线性排序算法对所述待排序数据排序。
技术领域
本发明涉及计算机技术领域,特别涉及一种数据的处理方法及装置。
背景技术
在数据库中,很多场景都需要对数据进行排序,例如ORDER BY(数据按某种顺序进行排序)、DISTINCT(去除数据中的重复值),以及创建Btree索引等等。因此排序算法性能的优劣对于数据库性能有着重要的影响。
现有的排序算法包括冒泡排序、插入排序、快速排序、外排序、堆排序等比较排序算法,这些排序算法的时间复杂度为O(N^2)或者O(Nlog2N)。除此之外,还有一些非比较排序算法,如计数排序、桶排序、基数排序等算法,这些算法能够将排序的时间复杂度降到O(N),也称为线性排序算法,其排序效率远高于比较排序算法。
数据库领域中现有的解决方案是在所有情况下统一采用快速排序、外排序等比较排序算法。其中,在数据量较小,内存能够容纳的情况下,会选择快速排序算法;在数据量较大,内存不能容纳的情况下,选择外排序算法,借助于磁盘实现大数据量的排序。现有技术主要解决了内存容量不足情况下的排序问题。
然而,现有技术所选择的这两种排序算法仍属于比较排序算法,其时间复杂度都远大于线性排序算法。在很多实际上能够使用线性排序算法的场景,却因为没有合理的判断和选择方法而无法使用线性排序算法来提高排序效率,导致性能的损失。
发明内容
本申请提供了一种数据的处理方法及装置,通过从数据库中得到待排序数据的特征信息来判断是否能够采用线性排序算法,从而提升数据库的排序性能。
本申请第一方面提供了一种数据处理方法,应用于服务器,服务器获取待排序数据的特征信息后,根据所述待排序数据的特征信息从特征信息与线性排序算法的对应关系中匹配目标线性排序算法,当匹配到目标线性排序算法时,按照所述目标线性排序算法对所述待排序数据排序。因此,通过利用数据的特征信息选择合适的线性排序算法,使得线性排序算法在数据库中的运用成为可能,从而提高数据库的排序性能。
在一种可能的实现方式中,所述获取待排序数据的特征信息可以是获取所述待排序数据的取值范围和数据类型;基于该实现方式,服务器可以根据提取的待排序数据的取值范围和数据类型,判断是否可以选择线性排序算法进行排序,以及选择哪种线性排序算法较为合适。具体的,当提取到的所述待排序数据的数据类型为整型或日期,且所述待排序数据的取值范围小于预设值时,说明此时待排序数据的非重复distinct值很少,就可以从特征信息与线性排序算法的对应关系中确定对应的目标线性排序算法为计数排序算法,这样的排序速度最快。同时根据数据的取值范围,可以自动选择排序过程中用到的辅助数组的大小。该实现方式针对提取的取值范围和数据类型等特征信息,选择了较为合适的计数排序算法,提高了数据库的排序性能。
在一种可能的实现方式中,所述获取待排序数据的特征信息可以是获取所述待排序数据的取值范围和数据类型;基于该实现方式,服务器可以根据提取的待排序数据的取值范围和数据类型,判断是否可以选择线性排序算法进行排序,以及选择哪种线性排序算法较为合适。具体的,当提取到的所述待排序数据的数据类型为整型或日期,且所述待排序数据的取值范围大于预设值时,说明此时待排序数据的distinct值较多,就可以从特征信息与线性排序算法的对应关系中确定对应的目标线性排序算法为基数排序算法,因为已知数据的取值范围,就可以选择最高位开始对数据进行排序。。该实现方式针对提取的取值范围和数据类型等特征信息,选择了较为合适的基数排序算法,提高了数据库的排序性能。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州华为数字技术有限公司,未经杭州华为数字技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611164955.6/2.html,转载请声明来源钻瓜专利网。