一种数据库优化方法和装置制造方法及图纸

技术编号:14874517 阅读:104 留言:0更新日期:2017-03-23 22:10
本发明专利技术的实施方式提供了一种数据优化方法和装置。该数据优化方法包括:在数据导入操作之前,获取数据库表结构;如果根据获取的数据库表结构,确定需要进行数据压缩时,则对待导入的数据库表进行压缩后再执行数据导入操作。通过在进行数据库导入操作之前,判断是否需要进行数据压缩,如果判断出需要进行数据压缩,则先对待导入的数据库表进行压缩后再执行数据导入操作,由此,完成了数据库表的优化,减少了数据库表占用的存储空间,而且,相比于在线修改数据表结构的优化方式,不会影响数据库上的现有业务,为用户带来了更好的体验。此外,本发明专利技术的实施方式提供了一种数据库优化装置。

【技术实现步骤摘要】

本专利技术的实施方式涉及数据库
,更具体地,本专利技术的实施方式涉及一种数据库优化方法和装置
技术介绍
本部分旨在为权利要求书中陈述的本专利技术的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。当前实现MySQL数据库备份和恢复的方案主要有三种:一是MySQL官方提供的基于mysqldump进行数据库元数据(schema)和数据(record)导出,再使用mysql客户端进行数据导入(source);二是MySQL服务提供商Percona公司提供的基于mydumper和myloader的数据导出和导入;三是MySQL服务提供商Percona公司提供的基于xtrabackup的数据导出和导入。前两种属于逻辑备份,不同的是第二种是多线程的。最后一种是物理备份,即直接拷贝数据库物理文件。
技术实现思路
现有的三种主流数据库备份恢复方案,虽能够满足大部分场景下的使用需求,但均存在一个不足,就是在恢复数据时只是简单得将备份的数据进行导入,均不提供用户进行数据库表结构优化的能力,比如启用压缩、加/减列、修改列、加/减索引、修改索引等。但是,在数据恢复阶段是非常好的表结构优化机会,因为此时表结构在数据库实例中重新被创建,表中的数据为空,相比在线修改表结构,此时修改的成本最小,既不会影响线上业务也不需要额外的操作时间。为此,非常需要一种改进的数据库优化方法,以在数据库导入过程中,优化数据库表结构,节省数据库存储空间。在本上下文中,本专利技术的实施方式期望提供一种数据库优化方法和装置。在本专利技术实施方式的第一方面中,提供了一种数据库优化方法,包括:在数据导入操作之前,获取数据库表结构;如果根据获取的数据库表结构,确定需要进行数据压缩时,则对待导入的数据库表进行压缩后再执行数据导入操作。可选地,在确定需要进行数据压缩时,对待导入的数据库表进行压缩之前,还包括:判断是否满足用户预设的压缩条件;以及对待导入的数据库表进行压缩,具体包括:如果判断结果为是,则再对待导入的数据库表进行压缩。优选地,所述压缩条件包括以下至少一项:最低压缩比例,执行数据压缩时中央处理单元CPU最大利用率;数据压缩采样量和压缩键值,其中,所述压缩键值表示数据压缩后每页占用存储空间的期望值。优选地,对待导入的数据库表进行压缩,具体包括:根据所述压缩键值对待导入的数据库表进行压缩。可选地,如果所述用户未设置压缩键值;则根据所述压缩键值对待导入的数据库表进行压缩之前,还包括:为待导入的数据库表创建n个临时表,其中,n为不大于预设值的自然数,每一临时表对应不同的临时压缩键值;针对每一临时表,根据该临时表对应的临时压缩键值,从数据导出过程中生成的数据文件中选择若干个数据文件启用压缩并插入到该临时表中;选择占用存储空间最小的临时表对应的临时压缩键值为所述压缩键值。可选地,在从数据导出过程中生成的数据文件中选择若干个数据文件启用压缩并插入到该临时表中的同时,还包括:分别记录针对每一临时表执行数据压缩操作和数据插入操作所消耗的时间;以及如果数据插入操作结束后,每一临时表占用的存储空间相同,则所述方法,还包括:选择消耗时间最短的临时表对应的临时压缩键值为所述压缩键值。可选地,本专利技术实施例提供的数据库优化方法,还包括:确定被选择的临时表为目标数据库表;将待导入的数据库表中剩余的数据利用确定出的压缩键值进行压缩后插入到所述目标数据库表中。优选地,从数据导出过程中生成的数据文件中选择出的若干个数据文件包含的数据量满足预设的数据量范围。优选地,根据获取的数据库表结构,按照以下方法判断是否需要进行数据压缩:根据获取的数据库表结构,解析数据库表中包含的列数据;如果所述列数据中指定类型数据占比超过第一预设阈值时,确定需要进行数据压缩;如果所述列数据中指定类型数据占比不超过第一预设阈值时,确定不需要进行数据压缩。优选地,根据获取的数据库表结构,按照以下方法判断是否需要进行数据压缩:根据获取的数据库表结构,判断所述数据库表占用的存储空间是否超过第二预设阈值,如果是,则确定需要进行数据压缩;否则,确定不需要进行数据压缩。在本专利技术实施方式的第二方面中,提供了一种数据库优化装置,包括:获取单元,用于在数据导入操作之前,获取数据库表结构;数据压缩单元,用于如果根据获取的数据库表结构,确定需要进行数据压缩时,则对待导入的数据库表进行压缩;数据导入单元,用于对所述数据压缩单元压缩后的数据库表执行数据导入操作。可选地,本专利技术实施例提供的数据库优化装置,还包括第一判断单元,其中:所述第一判断单元,用于在所述数据压缩单元确定需要进行数据压缩时,对待导入的数据库表进行压缩之前,判断是否满足用户预设的压缩条件;所述数据压缩单元,具体用于如果所述第一判断单元的判断结果为是,则再对待导入的数据库表进行压缩。优选地,所述压缩条件包括以下至少一项:最低压缩比例,执行数据压缩时中央处理单元CPU最大利用率;数据压缩采样量和压缩键值,其中,所述压缩键值表示数据压缩后每页占用存储空间的期望值。优选地,所述数据压缩单元,具体用于根据所述压缩键值对待导入的数据库表进行压缩。可选地,本专利技术实施例提供的数据库优化装置,还包括:临时表创建单元,用于如果所述用户未设置压缩键值,在所述数据压缩单元根据所述压缩键值对待导入的数据库表进行压缩之前,为待导入的数据库表创建n个临时表,其中,n为不大于预设值的自然数,每一临时表对应不同的临时压缩键值;数据插入单元,用于针对每一临时表,根据该临时表对应的临时压缩键值,从数据导出过程中生成的数据文件中选择若干个数据文件启用压缩并插入到该临时表中;压缩键值确定单元,用于选择占用存储空间最小的临时表对应的临时压缩键值为所述压缩键值。可选地,本专利技术实施例提供的数据库优化装置,还包括记录单元,其中:所述记录单元,用于在所述数据插入单元从数据导出过程中生成的数据文件中选择若干个数据文件启用压缩并插入到该临时表中的同时,分别记录针对每一临时表执行数据压缩操作和数据插入操作所消耗的时间;所述压缩键值确定单元,用于选择消耗时间最短的临时表对应的临时压缩键值为所述压缩键值。可选地,本专利技术实施例提供的数据库优化装置还包括第一确定单元,其中:所述第一确定单元,用于确定被选择的临时表为目标数据库表;所述数据压缩单元,还用于将待导入的数据库表中剩余的数据利用确定出的压缩键值进行压缩;所述数据插入单元,还用于将所述数据压缩单元压缩得到的数据插入到所述目标数据库表中。优选地,从数据导出过程中生成的数据文件中选择出的若干个数据文件包含的数据量满足预设的数据量范围。可选地,本专利技术实施例提供的数据库优化装置还包括:解析单元,用于根据所述获取单元获取的数据库表结构,解析数据库表中包含的列数据;第二确定单元,用于如果所述列数据中指定类型数据占比超过第一预设阈值时,确定需要进行数据压缩;如果所述列数据中指定类型数据占比不超过第一预设阈值时,确定不需要进行数据压缩。可选地,本专利技术实施例提供的数据库优化装置,还包括:第二判断单元,用于根据获取的数据库表结构,判断所述数据库表占用的存储空间是否超过第二预设阈值,如果是,则确定需要进行数据压缩;否则,确定不需要进行数据压缩。在本专利技术实施方式的第三方面中,提供了一种数据本文档来自技高网...
一种数据库优化方法和装置

【技术保护点】
一种数据库优化方法,包括:在数据导入操作之前,获取数据库表结构;如果根据获取的数据库表结构,确定需要进行数据压缩时,则对待导入的数据库表进行压缩后再执行数据导入操作。

【技术特征摘要】
1.一种数据库优化方法,包括:在数据导入操作之前,获取数据库表结构;如果根据获取的数据库表结构,确定需要进行数据压缩时,则对待导入的数据库表进行压缩后再执行数据导入操作。2.根据权利要求1所述的方法,在确定需要进行数据压缩时,对待导入的数据库表进行压缩之前,还包括:判断是否满足用户预设的压缩条件;以及对待导入的数据库表进行压缩,具体包括:如果判断结果为是,则再对待导入的数据库表进行压缩。3.根据权要求2所述的方法,其特征在于,所述压缩条件包括以下至少一项:最低压缩比例,执行数据压缩时中央处理单元CPU最大利用率;数据压缩采样量和压缩键值,其中,所述压缩键值表示数据压缩后每页占用存储空间的期望值。4.根据权利要求3所述的方法,对待导入的数据库表进行压缩,具体包括:根据所述压缩键值对待导入的数据库表进行压缩。5.根据权利要求4所述的方法,如果所述用户未设置压缩键值;则根据所述压缩键值对待导入的数据库表进行压缩之前,还包括:为待导入的数据库表创建n个临时表,其中,n为不大于预设值的自然数,每一临时表对应不同的临时压缩键值;针对每一临时表,根据该临时表对应的临时压缩键值,从数据导出过程中生成的数据文件中选择若干个数据文件启用压缩并插入到该临时表中;选择占用存储空间最小的临时表对应的临时压缩键值为所述压缩键值。6.根据权利要求5所...

【专利技术属性】
技术研发人员:温正湖
申请(专利权)人:网易杭州网络有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1