【技术实现步骤摘要】
一种数据库数据存储、查询方法、装置、设备及介质
[0001]本申请涉及数据库
,尤其涉及一种数据库数据存储、查询方法、装置、设备及介质。
技术介绍
[0002]随着信息技术的飞速发展,涌现出越来越多的为广大用户提供日常服务的业务平台,例如,通信业务服务平台、电商商品购买平台、政务服务平台等。通常这些业务平台的数据库中存储着数量庞大的业务数据,单张数据表中记录的业务数据的数据量就有可能多达上万行,占用的内存可达100G,业务量的增长也会导致数据库的数据量持续膨胀。同时由于业务的多样性及耦合性,导致数据间的关联关系比较复杂,上述情况往往会降低数据库的数据查询性能,成为业务发展的瓶颈,例如,进行数据查询时,需要在一张数据表的上万行业务数据中查找,CPU计算量增加,数据行的扫描极大降低了数据查询的效率。
[0003]现有提升数据库数据查询效率的方法包括:
[0004]提升硬件能力来改善数据库处理能力,例如,增加数据库所在服务器的存储容量、CPU数量等。这种方式成本高,不能从根本上提升数据库数据查询效率。
[0005]采用数据库缓存、读写分离等技术手段提升数据库数据查询效率。这种方式,通常当数据量激增时,数据库查询效率仍是下降明显。
技术实现思路
[0006]本申请实施提供一种数据库数据存储、查询方法、装置、设备及介质,用以解决现有技术中数据库查询效率较低的问题。
[0007]第一方面,本申请提供了一种数据库数据存储方法,所述方法包括:
[0008]针对数据库中的每 ...
【技术保护点】
【技术特征摘要】
1.一种数据库数据存储方法,其特征在于,所述方法包括:针对数据库中的每张数据表,获取该数据表中记载的业务数据归属的类别,在该数据表中查找每个预设字段对应的第一数据,并将查找到的第一数据、该第一数据归属的业务数据的标识以及所述预设字段保存到该数据表的垂直分表中,并在该数据表中删除该第一数据;判断是否已经创建所述类别对应的第一目标垂直分库,若是,将所述垂直分表存储到所述第一目标垂直分库中,并记录所述垂直分表中每个预设字段及所述垂直分表存储到了第一目标垂直分库中的索引信息;若否,创建所述类别对应的第二目标垂直分库,并将所述垂直分表存储到所述第二目标垂直分库中,记录所述垂直分表中每个预设字段及所述垂直分表存储到了第二目标垂直分库中的索引信息。2.如权利要求1所述的方法,其特征在于,所述预设字段通过以下方式确定包括:获取第一预设时间段内所述数据库的操作日志,识别所述操作日志中记录的每条数据库操作信息中的条件字段;针对每个条件字段,统计该条件字段被使用次数,若所述被使用次数大于预设阈值,将该条件字段确定为第一预设字段;否则,将该条件字段确定为第二预设字段;所述将查找到的第一数据以及所述预设字段保存到该数据表的垂直分表中包括:将查到的第一预设字段及对应的第一数据保存到数据表的第一垂直分表中,将查到的第二预设字段及对应的第一数据保存到数据表的第二垂直分表中。3.如权利要求1所述的方法,其特征在于,所述方法包括:针对每个目标垂直分库中的每张垂直分表,获取该垂直分表中第三预设字段对应的每个第二数据;针对获取到的每个第二数据,获取该第二数据对应的数值,根据该第二数据对应的数值以及已经创建的每个水平分库对应的目标数值,确定该第二数据对应的目标水平分库,判断所述目标水平分库中是否存在记录该第二数据所在垂直分表的业务数据的第一数据表,若是,将该第二数据所在的业务数据存储到所述第一数据表中,并在该第二数据所在的垂直分表中删除该第二数据,在索引信息中记录第三预设字段的该第二数据所在的业务数据的标识与所述目标水平分库中第一数据表的索引关系;若否,创建该第二数据所在垂直分表对应的第二数据表,将该第二数据所在的业务数据存储到所述第二数据表中,并在该第二数据所在的垂直分表中删除该第二数据,在索引信息中记录第三预设字段的该第二数据所在的业务数据的标识与所述目标水平分库中第二数据表的索引关系;将该垂直分表存储到目标垂直分库中的索引信息删除。4.如权利要求3所述的方法,其特征在于,所述方法包括:针对每个水平分库中的每张数据表,获取该数据表中第四预设字段对应的每个第三数据;针对获取到的每个第三数据,获取该第三数据对应的数值,根据该第三数据对应的数值以及已经创建的每个水平分表对应的目标数值,确定该第三数据对应的目标水平分表,将该第三数据所在的业务数据存储到所述目标水平分表中,并在该第三数据所在的数据表中删除该第三数据;在索引信息中记录第四预设字段的该第三数据所在的业务数据的标识与水平分库中目标水平分表的索引关系;将该数据表存储到水平分库中的索引信息删除。5.如权利要求3所述的方法,其特征在于,所述将该第二数据所在的业务数据存储到所
述第一数据表中包括:判断所述第一数据表中是否被写满;若是,且所述目标水平分库被写满时,根据保存的水平分库的数量阈值,若已经创建的水平分库的数量未达到所述水平分库的数量阈值,创建水平分库,将所述水平分库激活并将所述目标水平分库对应的目标数值作为创建的所述水平分库对应的目标数值,创建的所述水平分库中创建记录该第二数据所在垂直分表的业务数据的第一数据表,将该第二数据所在的业务数据存储到所述第一数据表中;若否,直接该第二数据所在的业务数据存储到所述第一数据表中。6.如权利要求4所述的方法,其特征在于,所述将该第三数据所在的业务数据存储到所述目标水平分表中包括:判断所述目标水平分表中是否被写满;若是,且已经创建的水平分表的数量未达到所述水平分表的数量阈值,创建水平分表,将创建的所述水平分表激活并将所述目标水平分表对应目标数值作为创建的所述水平分表对应的目标数值,将该第三数据所在的业务数据存储到创建的所述水平分表中;若否,直接将该第三数据所在的业务数据存储到所述目标水平分表中。7.如权利要求5或6所述的方法,其特征在于,根据以下方式确定创建的水平分库或水平分表的数量阈值:获取所述数据库的数据容量以及平均日增长量;根据所述平均日增长量以及第二预设时间段,确定所述数据库在所述第二预设时间段内的累计增长量;确定所述数据容量与所述累计增长量的和值,将所述和值确定为所述数据库的预测容量;根据所述预测容量,每个水平分库的预设最大容量或每个水平分表的预设最大容量,确定待创建的水平分库数量或水平分表的数量阈值。8.一种数据查询方法,其特征在于,所述方法包括:接收待查询数据的查询指令,其中所述查询指令中包含待查询字段;根据保存的垂直分表中每个预设字段及垂直分表被存储到的垂直分库的索引信息,确定所述待查询字段被存储的目标垂直分表及所述目标垂直分表被存储的目标垂直分库;在所述目标垂直分库的所述目标垂直分表中查找所述待查询字段对应的数据。9.如权利要求8所述的方法,其特征在于,所述查询指令中还包括所述待查询字段归属的业务数据的标识,所述方法还包括:根据保存的第三预设字段的每个第二数据所在的业务数据的标识与目标水平分库中的数据表的索引关系,确定所述待查询字段归属的业务数据的标识对应的目标水平分库的目标数据表,在所述目标水平分库的目标数据表中查找所述待查询字段对应的数据。10.如权利要求9所述的方法,其特征在于,所述方法还包括:根据保存的第四预设字段的每个第三数据所在的业务数据的标识与水平分库中目标水平分表的索引关系,确定所述待查询字段归属的业务数据的标识对应的目标水平分库的目标水平分表,在所述目标水平分库的目标水平分表中查找所述待查询字段对应的数据。11.一种数据库数据存储装置,其特征在于,所述装置包括:
垂直分表模块,用于针对数据库中的每张数据表,获取该数据表中记载的业务数据归属的类别,在该数据表中查找每个预设字段对应的第一数据,并将查找到的第一数据、该第一数据归属...
【专利技术属性】
技术研发人员:刘紫千,余启明,常力元,曹然,佟欣哲,李金伟,陈林,刘长波,
申请(专利权)人:天翼安全科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。