一种数据存储方法及装置与流程

文档序号:14571899发布日期:2018-06-01 22:44阅读:157来源:国知局
一种数据存储方法及装置与流程

本发明涉及数据存储技术领域,特别涉及一种数据存储方法及装置。



背景技术:

随着信息技术的飞速发展,数据呈现爆炸态势,需要存储的数据量也越来越大,数据类型也越来越复杂。面对海量的数据,单一的数据库已经无法满足所有数据的存储需要了,现有存储技术在进行数据存储时,一般会设置有多个数据库,当当前进行数据存储的数据库存满数据后,再启动下一个数据库进行数据的存储。

然而,现有技术中在接收到待存储的数据后,是按照数据库的存储顺序进行数据的存储的,未考虑到当前的存储环境要求,及用户对待存储数据存储时的性能要求,因此现有技术中的数据存储方法造成了选取的数据库不合理,不能满足用户及存储环境对于存储待存储数据的数据库的性能要求,影响了用户的体验。



技术实现要素:

本发明提供一种数据存储方法及装置,用以解决现有技术中选取的存储待存储数据的数据库不合理,不能满足用户对于存储待存储数据的数据库的性能要求,影响了用户的体验的问题。

为达到上述目的,本发明实施例公开了一种数据存储方法,应用于电子设备,所述方法包括:

针对当前待存储数据,从所述待存储数据中提取设定数量的数据作为测试数据;

根据预先设定的性能要求,确定对待存储数据库进行测试的测试类型;

根据所述测试类型及所述测试数据,对每个待存储数据库进行测试,确定每个待存储数据库对应的测试参数;

根据所述每个待存储数据库对应的测试参数及所述预先设定的性能要求,确定目标数据库,并将所述待存储数据存储到所述目标数据库中。

进一步地,所述根据预先设定的性能要求,确定对待存储数据库进行测试的测试类型之前,所述方法还包括:

根据所述待存储数据的类型及每个存储数据库针对的数据类型,选取与所述待存储数据的类型相对应的数据库作为待存储数据库。

进一步地,所述性能要求包括:

加载性能优先、存储效率优先、查询性能优先。

进一步地,所述根据预先设定的性能要求,确定对待存储数据库进行测试的测试类型包括:

如果所述预先设定的性能要求为加载性能优先或存储效率优先,确定对所述待存储数据库进行加载测试;

如果所述预先设定的性能要求为查询性能优先,确定对所述待存储数据库进行查询测试。

进一步地,如果测试类型为加载测试,所述根据所述测试类型及所述测试数据,对每个待存储数据库进行测试,确定每个待存储数据库对应的测试参数包括:

控制每个所述待存储数据库加载所述测试数据,确定每个所述待存储数据库加载所述测试数据的加载时间、占用的存储空间和CPU的平均利用率。

进一步地,如果测试类型为查询测试,所述根据所述测试类型及所述测试数据,对每个待存储数据库进行测试,确定每个待存储数据库对应的测试参数包括:

在每个所述待存储数据库中查询所述测试数据中每条数据,确定每个待存储数据库对所述测试数据中每条数据进行查询的平均响应时间、平均网络数据传输量和CPU平均利用率。

进一步地,如果所述预先设定的性能要求为加载性能优先,所述根据所述每个待存储数据库对应的测试参数及所述预先设定的性能要求,确定目标数据库包括:

针对每个待存储数据库,确定该待存储数据库加载所述测试数据对应的加载时间、占用的存储空间和CPU的平均利用率的第一乘积结果;

将所述第一乘积结果按照从大到小的顺序排序,选取第一乘积结果较小的第一设定数量的待存储数据库作为第一候选数据库;

将所述第一候选数据库中加载时间最小的待存储数据库确定为目标数据库。

进一步地,如果所述预先设定的性能要求为存储效率优先,所述根据所述每个待存储数据库对应的测试参数及所述预先设定的性能要求,确定目标数据库包括:

针对每个待存储数据库,确定该待存储数据库加载所述测试数据对应的加载时间、占用的存储空间和CPU的平均利用率的第一乘积结果;

将所述第一乘积结果按照从大到小的顺序排序,选取第一乘积结果较小的第二设定数量的待存储数据库作为第二候选数据库;

将所述第二候选数据库中占用的存储空间最小的待存储数据库确定为目标数据库。

进一步地,如果所述预先设定的性能要求为查询性能优先,所述根据所述每个待存储数据库对应的测试参数及所述预先设定的性能要求,确定目标数据库包括:

针对每个待存储数据库,确定该待存储数据库中对所述测试数据中每条数据进行查询对应的平均响应时间、平均网络数据传输量和CPU平均利用率的第二乘积结果;

将所述第二乘积结果按照从大到小的顺序排序,选取第二乘积结果较小的第三设定数量的待存储数据库作为第三候选数据库;

将所述第三候选数据库中平均响应时间最小的待存储数据库确定为目标数据库。

本发明实施例公开了一种数据存储装置,应用于电子设备,该装置包括:

提取模块,用于针对当前待存储数据,从所述待存储数据中提取设定数量的数据作为测试数据;

第一确定模块,用于根据预先设定的性能要求,确定对待存储数据库进行测试的测试类型;

第二确定模块,用于根据所述测试类型及所述测试数据,对每个待存储数据库进行测试,确定每个待存储数据库对应的测试参数;

第三确定模块,用于根据所述每个待存储数据库对应的测试参数及所述预先设定的性能要求,确定目标数据库,并将所述待存储数据存储到所述目标数据库中。

进一步地,所述装置还包括:

选取模块,用于根据所述待存储数据的类型及每个存储数据库针对的数据类型,选取与所述待存储数据的类型相对应的数据库作为待存储数据库。

进一步地,所述第一确定模块,具体用于如果所述预先设定的性能要求为加载性能优先或存储效率优先,确定对所述待存储数据库进行加载测试;如果所述预先设定的性能要求为查询性能优先,确定对所述待存储数据库进行查询测试。

进一步地,所述第二确定模块,具体用于如果测试类型为加载测试,控制每个所述待存储数据库加载所述测试数据,确定每个所述待存储数据库加载所述测试数据的加载时间、占用的存储空间和CPU的平均利用率。

进一步地,所述第二确定模块,具体用于如果测试类型为查询测试,在每个所述待存储数据库中查询所述测试数据中每条数据,确定每个待存储数据库对所述测试数据中每条数据进行查询的平均响应时间、平均网络数据传输量和CPU平均利用率。

进一步地,所述第三确定模块,具体用于如果所述预先设定的性能要求为加载性能优先,针对每个待存储数据库,确定该待存储数据库加载所述测试数据对应的加载时间、占用的存储空间和CPU的平均利用率的第一乘积结果;将所述第一乘积结果按照从大到小的顺序排序,选取第一乘积结果较小的第一设定数量的待存储数据库作为第一候选数据库;将所述第一候选数据库中加载时间最小的待存储数据库确定为目标数据库。

进一步地,所述第三确定模块,具体用于如果所述预先设定的性能要求为存储效率优先,针对每个待存储数据库,确定该待存储数据库加载所述测试数据对应的加载时间、占用的存储空间和CPU的平均利用率的第一乘积结果;将所述第一乘积结果按照从大到小的顺序排序,选取第一乘积结果较小的第二设定数量的待存储数据库作为第二候选数据库;将所述第二候选数据库中占用的存储空间最小的待存储数据库确定为目标数据库。

进一步地,所述第三确定模块,具体用于如果所述预先设定的性能要求为查询性能优先,针对每个待存储数据库,确定该待存储数据库中对所述测试数据中每条数据进行查询对应的平均响应时间、平均网络数据传输量和CPU平均利用率的第二乘积结果;将所述第二乘积结果按照从大到小的顺序排序,选取第二乘积结果较小的第三设定数量的待存储数据库作为第三候选数据库;将所述第三候选数据库中平均响应时间最小的待存储数据库确定为目标数据库。

本发明实施例公开了一种数据存储方法及装置,该方法包括:针对当前待存储数据,从所述待存储数据中提取设定数量的数据作为测试数据;根据预先设定的性能要求,确定对待存储数据库进行测试的测试类型;根据所述测试类型及所述测试数据,对每个待存储数据库进行测试,确定每个待存储数据库对应的测试参数;根据所述每个待存储数据库对应的测试参数及所述预先设定的性能要求,确定目标数据库,并将所述待存储数据存储到所述目标数据库中。由于本发明实施例中,在待存储的数据中提取设定数量的数据作为测试数据,根据预先设定的性能要求,采用对应的测试类型,对每个待存储数据库进行测试,从而根据每个待存储数据库对应的测试参数,确定目标数据库,因此选择的目标数据库是满足当前性能要求的数据库,从而使数据的存储更加的合理,并提高了用户的体验。

附图说明

图1为本发明实施例1提供的一种数据存储过程示意图;

图2为本发明实施例2提供的一种数据存储过程示意图;

图3为本发明实施例4提供的一种数据存储过程示意图;

图4为本发明实施例5提供的一种数据存储过程示意图;

图5为本发明实施例6提供的一种数据存储过程示意图;

图6为本发明实施例7提供的一种数据存储装置结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例1:

图1为本发明实施例提供的一种数据存储过程示意图,该过程包括:

S101:针对当前待存储数据,从所述待存储数据中提取设定数量的数据作为测试数据。

本发明实施例提供的数据存储方法,应用于电子设备,该电子设备可以为个人电脑、平板电脑,也可以是服务器等设备。

具体的,针对当前待存储的数据,从待存储的数据中提取设定数量的数据作为测试数据,该设定数量可以为5条、10条等,例如:当前待存储的数据中共包含100条数据,设定数量为10条,从待存储的数据中随机提取10条数据作为测试数据,当然该设定数量也可以是提取所述待存储数据的比例值,例如:接收到的待存储的数据中共包含100条数据,设定数量为待存储数据的10%的数据,从待存储的数据中随机提取10%的数据,即随机提取10条数据作为测试数据。

在本发明实施例中,从所述待存储数据中随机提取设定数量的数据作为测试数据是现有技术,在本发明实施例中不再进行赘述。

S102:根据预先设定的性能要求,确定对待存储数据库进行测试的测试类型。

数据库是按照数据结构来组织、存储和管理数据的仓库。不同类型的或者同类型不同架构的数据库之间,因为数据库的架构不同、存储数据的结构不同,不同的数据库在对相同的数据进行加载或者读取时,加载时间、读取时间、内存的占用率等参数也会存在不同。

在本发明实施例中,电子设备中保存有多种性能要求,当接收到待存储数据时,电子设备可以根据当前的存储环境、待存储数据中包含的数据条数进行对性能要求的选择,例如:如果待存储数据库的存储空间快要被占满时,选择的性能要求为存储效率优先,从而达到尽量减少数据的存储空间的目的,如果待存储数据的条数超过设定阈值后,选择的性能要求为查询性能优先,从而达到提高数据查询效率的目标,当然也可以是用户根据需求来选择性能要求。每种性能要求都对应着一种测试类型,例如:性能要求为查询性能优先对应着查询测试、性能要求为读取时内存性能优先对应着读取测试。

具体的,根据预先设定的性能要求,确定对待存储数据库进行测试的测试类型,例如:预先设定的性能要求为读取时内存性能优先,确定对待存储数据库进行读取测试。

S103:根据所述测试类型及所述测试数据,对每个待存储数据库进行测试,确定每个待存储数据库对应的测试参数。

具体的,所述测试参数为根据所述测试类型及所述测试数据,对每个待存储的数据库进行测试时该待存储数据库所在的电子设备的运行参数,该运行参数可以反映数据库在对该测试数据进行相应的操作时,对电子设备的性能的影响。

测试参数例如可以为:中央处理器(Central Processing Unit,CPU)平均使用率、内存平均占用量等参数。如果所述测试类型为读取测试、待存储的数据库包括数据库A、数据库B、数据库C、数据库D,将所述测试数据分别存入数据库A、数据库B、数据库C、数据库D,记录数据库A、数据库B、数据库C、数据库D读取所述测试数据对应的读取时间、内存占用量、CPU平均使用量等参数。

S104:根据所述每个待存储数据库对应的测试参数及所述预先设定的性能要求,确定目标数据库,并将所述待存储数据存储到所述目标数据库中。

具体的,可以根据预先设定的性能要求对所述每个待存储数据库对应的测试参数中特定的参数进行比较,确定目标数据库,例如:待存储的数据库包括数据库A、数据库B、数据库C,数据库A对应的参数为读取时间1秒、CPU平均利用率10%、内存占用量30M,数据库B对应的参数为读取时间2秒、CPU平均利用率15%、内存占用量30M,数据库C对应的参数为读取时间2.5秒、CPU平均利用率10%、内存占用量30M,预先设定的性能要求为读取时间优先,选取数据库A、数据库B、数据库C分别对应的读取时间进行比较,确定读取时间最小的数据库A作为目标数据库。

当然,也可以是根据预先设定的性能要求对所述每个待存储数据库对应的测试参数进行综合比较,确定目标数据库,例如:待存储的数据库包括数据库A、数据库B、数据库C,数据库A对应的参数为读取时间1秒、CPU平均利用率10%、内存占用量30M,数据库B对应的参数为读取时间2秒、CPU平均利用率15%、内存占用量30M,数据库C对应的参数为读取时间2.5秒、CPU平均利用率10%、内存占用量30M,预先设定的性能要求为读取时间优先,分别对数据库A、数据库B、数据库C对应的测试参数的乘积进行比较,确定所述测试参数的乘积最小的数据库A作为目标数据库。

由于本发明实施例中,在待存储的数据中提取设定数量的数据作为测试数据,根据预先设定的性能要求,采用对应的测试类型,对每个待存储数据库进行测试,从而根据每个待存储数据库对应的测试参数,确定目标存储数据库,因此选择的目标存储数据库是满足当前性能要求的数据库,从而使数据的存储更加的合理,并提高了用户的体验。

实施例2:

为了准确的确定出进行数据存储的目标数据库,在上述实施例的基础上,在本发明实施例中,所述根据预先设定的性能要求,确定对待存储数据库进行测试的测试类型之前,所述方法还包括:

根据所述待存储数据的类型及每个存储数据库针对的数据类型,选取与所述待存储数据的类型相对应的数据库作为待存储数据库。

根据数据库的架构不同,数据库包括:键值存储数据库、文档型数据库、列存储数据库和图数据库,其中,键值存储数据库主要会使用到一个哈希表,这个哈希表中有一个特定的键和一个指针指向特定的数据,该类数据库的优势在于简单、易部署,典型的键值存储数据库包括:Redis、Memcached、Dynamo、Voldemort、LevelDB,该类型的数据库主要针对的数据类型包括结构化的配置型数据、日志型数据等;列存储数据库通常是用来应对分布式存储的海量数据,键仍然存在,但是列存储数据库的特点是指向了多个列,典型的列存储数据库包括:HBase、Cassandra,该类型的数据库主要针对的数据类型包括账单型数据、详单型数据等;图数据库同其他行列以及刚性结构的数据库不同,图数据库是使用灵活的图形模型,并且能够扩展到多个服务器上,典型的图数据库包括Neo4J、Infinite Graph、OrientDB,该类型的数据库主要针对的数据类型包括社交型数据、关系型数据等;文档型数据库的数据结构要求不严格,表结构可变,不需要像关系型数据库一样需要预先定义表结构,典型的文档型数据库包括MongoDB、CouchDB,该类型的数据库主要针对的数据类型包括网站型数据、缓存型数据等。

因为每个数据库针对的数据类型不同,选取的待存储的数据库针对的数据类型与待存储的数据类型相对应,才能更好的满足用户对于待存储数据存储时对存储性能的要求,充分发挥待存储数据库的性能。对待存储数据类型的识别是现有技术在本发明实施例中不再进行赘述。

具体的,根据所述待存储数据的类型及每个存储数据库针对的数据类型,选取与所述待存储数据的类型相对应的数据库作为待存储数据库。例如:待存储数据的类型是账单型数据,选取针对账单型数据的数据库HBase、Cassandra作为待存储数据库。

图2为本发明实施例提供的一种数据存储过程示意图,该过程包括:

S201:针对当前待存储数据,从所述待存储数据中提取设定数量的数据作为测试数据。

S202:根据所述待存储数据的类型及每个存储数据库针对的数据类型,选取与所述待存储数据的类型相对应的数据库作为待存储数据库。

S203:根据预先设定的性能要求,确定对待存储数据库进行测试的测试类型。

S204:根据所述测试类型及所述测试数据,对每个待存储数据库进行测试,确定每个待存储数据库对应的测试参数。

S205:根据所述每个待存储数据库对应的测试参数及所述预先设定的性能要求,确定目标数据库,并将所述待存储数据存储到所述目标数据库中。

上述步骤中S202与S201中从所述待存储数据中提取设定数量的数据作为测试数据的过程,前后顺序可以不限制,可以先选取与所述待存储数据的类型相对应的数据库作为待存储数据库,也可以先从所述待存储数据中提取设定数量的数据作为测试数据。

实施例3:

在本发明实施例中,所述性能要求包括:

加载性能优先、存储效率优先、查询性能优先。

加载性能优先指在选择目标数据库时,需要优先考虑数据库的加载性能;存储效率优先指在选择目标数据库时,需要优先考虑数据库的存储效率;查询性能优先指在选择目标数据库时,需要考虑数据库的查询性能。

为了了解每个待存储数据库的相应性能要求,需要对待测试数据库进行相应测试,因为每种性能要求不同,因此对待测试数据库进行的测试的测试类型也不同的。具体的,在本发明实施例中,所述根据预先设定的性能要求,确定对待存储数据库进行测试的测试类型包括:

如果所述预先设定的性能要求为加载性能优先或存储效率优先,确定对所述待存储数据库进行加载测试;

如果所述预先设定的性能要求为查询性能优先,确定对所述待存储数据库进行查询测试。

具体的,如果预先设定的性能要求为加载性能优先或者存储效率优先,说明用户对待存储数据库加载待存储数据的加载性能或存储性能要求更高,为了确定待存储数据库的加载性能和存储性能,需要对待存储数据库进行加载测试。

如果预先设定的性能要求为查询性能优先,说明用户对待存储数据库查询待存储数据的查询性能要求更高,需要对待存储数据库进行查询测试。

实施例4:

为了准确的选取满足预先设定的性能要求的目标数据库,在上述各实施例的基础上,在本发明实施例中,如果预先设定的性能要求为加载性能优先,确定的测试类型为加载测试,所述根据所述测试类型及所述测试数据,对每个待存储数据库进行测试,确定每个待存储数据库对应的测试参数包括:

控制每个所述待存储数据库加载所述测试数据,确定每个所述待存储数据库加载所述测试数据的加载时间、占用的存储空间和CPU的平均利用率。

具体的,控制每个所述待存储数据库加载所述测试数据,因为测试数据中可能包含多条数据,因此针对每个待存储数据库,统计该待存储数据库在加载测试数据的过程中的加载时间、CPU的平均利用率,并确定该测试数据在该待存储数据库中占用的存储空间的大小。

如果预先设定的性能要求为加载性能优先,采用测试数据对每个待存储数据库进行加载测试,获取了待测试数据库的测试数据后,所述根据所述每个待存储数据库对应的测试参数及所述预先设定的性能要求,确定目标数据库包括:

针对每个待存储数据库,确定该待存储数据库加载所述测试数据对应的加载时间、占用的存储空间和CPU的平均利用率的第一乘积结果;

将所述第一乘积结果按照从大到小的顺序排序,选取第一乘积结果较小的第一设定数量的待存储数据库作为第一候选数据库;

将所述第一候选数据库中加载时间最小的待存储数据库确定为目标数据库。

具体的,在本发明实施例中在确定目标数据库时,针对每个待存储数据库,确定该待存储数据库加载所述测试数据对应的加载时间、占用的存储空间和CPU的平均利用率的第一乘积结果,将所述第一乘积结果按照从大到小排序,选取第一乘积结果较小的第一设定数量的待存储数据库作为第一候选数据库,即选取加载所述测试数据消耗资源较小的第一设定数量的待存储数据库作为第一候选数据库,该设定数量可以为2、3、5等。在加载所述测试数据的消耗资源较小的第一候选数据库中,选取加载时间最小的待存储数据库,作为目标数据库。例如:待存储数据库A对应第一乘积结果为2、待存储数据库B对应第一乘积结果为2.1、待存储数据库C对应第一乘积结果为2.5、待存储数据库D对应第一乘积结果为3,第一设定数量为2,将待存储数据库A、待存储数据库B、待存储数据库C、待存储数据库D对应的第一乘积结果按从大到小排序,选取所述第一乘积结果较小的待存储数据库A、待存储数据库B作为第一候选数据库,而待存储数据库A、待存储数据库B对应的加载时间分别为0.1秒、0.11秒,选取加载时间最小的待存储数据库A作为目标数据库。

图3为本发明实施例提供的一种数据存储过程示意图,该过程包括:

S301:针对当前待存储数据,从所述待存储数据中提取设定数量的数据作为测试数据。

S302:根据所述待存储数据的类型及每个存储数据库针对的数据类型,选取与所述待存储数据的类型相对应的数据库作为待存储数据库。

S303:如果预先设定的性能要求为加载性能优先,控制每个所述待存储数据库加载所述测试数据,确定每个所述待存储数据库加载所述测试数据的加载时间、占用的存储空间和CPU的平均利用率。

S304:针对每个待存储数据库,确定该待存储数据库加载所述测试数据对应的加载时间、占用的存储空间和CPU的平均利用率的第一乘积结果。

S305:将所述第一乘积结果按照从大到小的顺序排序,选取第一乘积结果较小的第一设定数量的待存储数据库作为第一候选数据库。

S306:将所述第一候选数据库中加载时间最小的待存储数据库确定为目标数据库,并将所述待存储数据存储到所述目标数据库中。

上述步骤中S302与S301中从所述待存储数据中提取设定数量的数据作为测试数据的过程,前后顺序可以不限制,可以先选取与所述待存储数据的类型相对应的数据库作为待存储数据库,也可以先从所述待存储数据中提取设定数量的数据作为测试数据。

实施例5:

为了准确的选取满足预先设定的性能要求的目标数据库,在上述各实施例的基础上,在本发明实施例中,如果预先设定的性能要求为存储效率,确定测试类型为加载测试,所述根据所述测试类型及所述测试数据,对每个待存储数据库进行测试,确定每个待存储数据库对应的测试参数包括:

控制每个所述待存储数据库加载所述测试数据,确定每个所述待存储数据库加载所述测试数据的加载时间、占用的存储空间和CPU的平均利用率。

具体的,控制每个所述待存储数据库加载所述测试数据,因为测试数据中可能包含多条数据,因此针对每个待存储数据库,统计该待存储数据库在加载测试数据的过程中的加载时间、CPU的平均利用率,并确定该测试数据在该待存储数据库中占用的存储空间的大小。

如果预先设定的性能要求为加载性能优先,采用测试数据对每个待存储数据库进行加载测试,获取了待测试数据库的测试数据后,所述根据所述每个待存储数据库对应的测试参数及所述预先设定的性能要求,确定目标数据库包括:

针对每个待存储数据库,确定该待存储数据库加载所述测试数据对应的加载时间、占用的存储空间和CPU的平均利用率的第一乘积结果;

将所述第一乘积结果按照从大到小的顺序排序,选取第一乘积结果较小的第二设定数量的待存储数据库作为第二候选数据库;

将所述第二候选数据库中占用的存储空间最小的待存储数据库确定为目标数据库。

具体的,在本发明实施例中在确定目标数据库时针对每个待存储数据库,确定该待存储数据库加载所述测试数据对应的加载时间、占用的存储空间和CPU的平均利用率的第一乘积结果,将所述第一乘积结果按照从大到小排序,选取第一乘积结果较小的第二设定数量的待存储数据库作为第二候选数据库,即选取加载所述测试数据消耗资源较小的第二设定数量的待存储数据库作为第二候选数据库,该设定数量可以为2、3、5等。在加载所述测试数据的消耗资源较小的第二候选数据库中,选取占用的存储空间最小的待存储数据库,作为目标数据库。例如:待存储数据库A对应第一乘积结果为2、待存储数据库B对应第一乘积结果为2.1、待存储数据库C对应第一乘积结果为2.5、待存储数据库D对应第一乘积结果为3,第二设定数量为2,将待存储数据库A、待存储数据库B、待存储数据库C、待存储数据库D对应的第一乘积结果按从大到小排序,选取所述第一乘积结果较小的待存储数据库A、待存储数据库B作为第二候选数据库,而待存储数据库A、待存储数据库B对应的占用存储空间分别为600字节、550字节,选取占用存储空间最小的待存储数据库B作为目标数据库。

图4为本发明实施例提供的一种数据存储过程示意图,该过程包括:

S401:针对当前待存储数据,从所述待存储数据中提取设定数量的数据作为测试数据。

S402:根据所述待存储数据的类型及每个存储数据库针对的数据类型,选取与所述待存储数据的类型相对应的数据库作为待存储数据库。

S403:如果预先设定的性能要求为存储效率,控制每个所述待存储数据库加载所述测试数据,确定每个所述待存储数据库加载所述测试数据的加载时间、占用的存储空间和CPU的平均利用率。

S404:针对每个待存储数据库,确定该待存储数据库加载所述测试数据对应的加载时间、占用的存储空间和CPU的平均利用率的第一乘积结果。

S405:将所述第一乘积结果按照从大到小的顺序排序,选取第一乘积结果较小的第二设定数量的待存储数据库作为第二候选数据库。

S406:将所述第二候选数据库中占用的存储空间最小的待存储数据库确定为目标数据库,并将所述待存储数据存储到所述目标数据库中。

上述步骤中S402与S401中从所述待存储数据中提取设定数量的数据作为测试数据的过程,前后顺序可以不限制,可以先选取与所述待存储数据的类型相对应的数据库作为待存储数据库,也可以先从所述待存储数据中提取设定数量的数据作为测试数据。

实施例6:

为了准确的选取满足预先设定的性能要求的目标数据库,在上述各实施例的基础上,在本发明实施例中,如果预先设定的性能要求为查询性能优先,确定测试类型为查询测试,所述根据所述测试类型及所述测试数据,对每个待存储数据库进行测试,确定每个待存储数据库对应的测试参数包括:

在每个所述待存储数据库中查询所述测试数据中每条数据,确定每个待存储数据库对所述测试数据中每条数据进行查询的平均响应时间、平均网络数据传输量和CPU平均利用率。

具体的,因为测试数据中可能包含多条数据,因此在每个待存储数据库,中查询所述测试数据中每条数据,统计该待存储数据库中查询所述测试数据中每条数据过程中的平均响应时间、平均网络数据传输量和CPU平均利用率。

如果预先设定的性能要求为查询性能优先,采用测试数据对每个待存储数据库进行查询测试,获取了待测试数据库的测试数据后,所述根据所述每个待存储数据库对应的测试参数及所述预先设定的性能要求,确定目标数据库包括:

针对每个待存储数据库,确定该待存储数据库中对所述测试数据中每条数据进行查询对应的平均响应时间、平均网络数据传输量和CPU平均利用率的第二乘积结果;

将所述第二乘积结果按照从大到小的顺序排序,选取第二乘积结果较小的第三设定数量的待存储数据库作为第三候选数据库;

将所述第三候选数据库中平均响应时间最小的待存储数据库确定为目标数据库。

具体的,在本发明实施例中在确定目标数据库时,针对每个待存储数据库,确定该待存储数据库中对所述测试数据中每条数据进行查询对应的平均响应时间、平均网络数据传输量和CPU平均利用率的第二乘积结果,将所述第二乘积结果按照从大到小排序,选取第二乘积结果较小的第三设定数量的待存储数据库最为第三候选数据库,即选取查询所述测试数据中每条数据消耗的平均资源较小的第三设定数量的待存储数据库作为第三候选数据库,该设定数量可以为2、3、5等。在查询所述测试数据中每条数据消耗的平均资源较小第三候选数据库中,选取平均响应时间最小的数据库,作为目标数据库。例如:待存储数据库A对应第二乘积结果为3、待存储数据库B对应第二乘积结果为2.8、待存储数据库C对应第二乘积结果为2.6、待存储数据库D对应第二乘积结果为2.5,第三设定数量为2,将待存储数据库A、待存储数据库B、待存储数据库C、待存储数据库D对应的第二乘积结果按从大到小排序,选取所述第二乘积结果较小的待存储数据库C、待存储数据库D作为第三候选数据库,而待存储数据库C、待存储数据库D对应的平均响应时间分别为0.11秒、0.1秒,选取平均响应时间最小的待存储数据库D作为目标数据库。

图5为本发明实施例提供的一种数据存储过程示意图,该过程包括:

S501:针对当前待存储数据,从所述待存储数据中提取设定数量的数据作为测试数据。

S502:根据所述待存储数据的类型及每个存储数据库针对的数据类型,选取与所述待存储数据的类型相对应的数据库作为待存储数据库。

S503:如果预先设定的性能要求为查询性能优先,在每个所述待存储数据库中查询所述测试数据中每条数据,确定每个待存储数据库对所述测试数据中每条数据进行查询的平均响应时间、平均网络数据传输量和CPU平均利用率。

S504:针对每个待存储数据库,确定该待存储数据库中对所述测试数据中每条数据进行查询对应的平均响应时间、平均网络数据传输量和CPU平均利用率的第二乘积结果。

S505:将所述第二乘积结果按照从大到小的顺序排序,选取第二乘积结果较小的第三设定数量的待存储数据库作为第三候选数据库。

S506:将所述第三候选数据库中平均响应时间最小的待存储数据库确定为目标数据库,并将所述待存储数据存储到所述目标数据库中。

上述步骤中S502与S501中从所述待存储数据中提取设定数量的数据作为测试数据的过程,前后顺序可以不限制,可以先选取与所述待存储数据的类型相对应的数据库作为待存储数据库,也可以先从所述待存储数据中提取设定数量的数据作为测试数据。

实施例7:

图6为本发明实施例提供的一种数据存储装置结构示意图,该装置包括:

提取模块61,用于针对当前待存储数据,从所述待存储数据中提取设定数量的数据作为测试数据;

第一确定模块63,用于根据预先设定的性能要求,确定对待存储数据库进行测试的测试类型;

第二确定模块64,用于根据所述测试类型及所述测试数据,对每个待存储数据库进行测试,确定每个待存储数据库对应的测试参数;

第三确定模块65,用于根据所述每个待存储数据库对应的测试参数及所述预先设定的性能要求,确定目标数据库,并将所述待存储数据存储到所述目标数据库中。

所述装置还包括:

选取模块62,用于根据所述待存储数据的类型及每个存储数据库针对的数据类型,选取与所述待存储数据的类型相对应的数据库作为待存储数据库。

所述第一确定模块63,具体用于如果所述预先设定的性能要求为加载性能优先或存储效率优先,确定对所述待存储数据库进行加载测试;如果所述预先设定的性能要求为查询性能优先,确定对所述待存储数据库进行查询测试。

所述第二确定模块64,具体用于如果测试类型为加载测试,控制每个所述待存储数据库加载所述测试数据,确定每个所述待存储数据库加载所述测试数据的加载时间、占用的存储空间和CPU的平均利用率。

所述第二确定模块64,具体用于如果测试类型为查询测试,在每个所述待存储数据库中查询所述测试数据中每条数据,确定每个待存储数据库对所述测试数据中每条数据进行查询的平均响应时间、平均网络数据传输量和CPU平均利用率。

所述第三确定模块65,具体用于如果所述预先设定的性能要求为加载性能优先,针对每个待存储数据库,确定该待存储数据库加载所述测试数据对应的加载时间、占用的存储空间和CPU的平均利用率的第一乘积结果;将所述第一乘积结果按照从大到小的顺序排序,选取第一乘积结果较小的第一设定数量的待存储数据库作为第一候选数据库;将所述第一候选数据库中加载时间最小的待存储数据库确定为目标数据库。

所述第三确定模块65,具体用于如果所述预先设定的性能要求为存储效率优先,针对每个待存储数据库,确定该待存储数据库加载所述测试数据对应的加载时间、占用的存储空间和CPU的平均利用率的第一乘积结果;将所述第一乘积结果按照从大到小的顺序排序,选取第一乘积结果较小的第二设定数量的待存储数据库作为第二候选数据库;将所述第二候选数据库中占用的存储空间最小的待存储数据库确定为目标数据库。

所述第三确定模块65,具体用于如果所述预先设定的性能要求为查询性能优先,针对每个待存储数据库,确定该待存储数据库中对所述测试数据中每条数据进行查询对应的平均响应时间、平均网络数据传输量和CPU平均利用率的第二乘积结果;将所述第二乘积结果按照从大到小的顺序排序,选取第二乘积结果较小的第三设定数量的待存储数据库作为第三候选数据库;将所述第三候选数据库中平均响应时间最小的待存储数据库确定为目标数据库。

本发明实施例公开了一种数据存储方法及装置,应用于电子设备,该方法包括;针对当前待存储数据,从所述待存储数据中提取设定数量的数据作为测试数据;根据预先设定的性能要求,确定对待存储数据库进行测试的测试类型;根据所述测试类型及所述测试数据,对每个待存储数据库进行测试,确定每个待存储数据库对应的测试参数;根据所述每个待存储数据库对应的测试参数及所述预先设定的性能要求,确定目标数据库,并将所述待存储数据存储到所述目标数据库中。由于本发明实施例中,在待存储的数据中提取设定数量的数据作为测试数据,根据预先设定的性能要求,采用对应的测试类型,对每个待存储数据库进行测试,从而根据每个待存储数据库对应的测试参数,确定目标数据库,因此选择的目标数据库是满足当前性能要求的数据库,从而使数据的存储更加的合理,并提高了用户的体验。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1