基于MySQL数据库的大文本字段存储方法和系统与流程

文档序号:14911464发布日期:2018-07-10 23:32阅读:397来源:国知局
本发明涉及数据处理
技术领域
:,尤其涉及一种基于MySQL数据库的大文本字段存储方法和系统。
背景技术
::MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,使得其应用广泛。目前,在关联数据库中,通常采用直接存储的方式保存大文本字段的数据,而由于一些数据的大文本字段之间存在相同的字段,比如,合同样式文本、商品介绍等数据。这种采用直接存储的方式保存会带来大量数据冗余,不仅会浪费数据库的存储空间,而且可以从数据库中直接得到存储的内容安全性差。技术实现要素:本发明的目的是提供一种基于MySQL数据库的大文本字段存储方法和系统,通过压缩加密再存储的形式,能有效的降低存储空间,而且由于重新编码对原始数据起到加密保护的作用,并以特定的唯一编码按照预设插入位置插入字符串文本中,最终生成存储的大文本字段,提高了存储安全性。本发明提供了一种基于MySQL数据库的大文本字段存储方法,包括以下步骤;获取待存储的原始数据,根据支持的压缩算法对所述原始数据进行压缩处理,得到二进制字节数组;采用编码工具对所述二进制字节数组进行编码,得到对应的字符串文本;获取每个压缩算法对应的唯一编码,将所述唯一编码按照预设插入位置插入所述字符串文本中,拼接得到大文本字段,并将所述大文本字段存储至数据库中。作为一种可实施方式,本发明提供的基于MySQL数据库的大文本字段存储方法还包括以下步骤;在获取待存储的原始数据之前,为每个压缩算法预先设置对应的唯一编码。作为一种可实施方式,所述压缩算法为JDKGZIP压缩算法、JDKdeflate压缩算法、LZ4压缩算法以及Snappy压缩算法的一种。作为一种可实施方式,本发明提供的基于MySQL数据库的大文本字段存储方法还包括以下步骤;读取存储于所述数据库中的大文本字段,并依据压缩算法、唯一编码以及编码工具对所述大文本字段解码得到原始数据。作为一种可实施方式,所述依据压缩算法、唯一编码以及编码工具对所述大文本字段解码得到原始数据包括以下步骤;读取所述大文本字段中预设插入位置的唯一编码,并将所述唯一编码从所述大文本字段中剔除,根据编码工具对剔除结果进行解码,得到对应的字符串文本;根据所述唯一编码获取对应的解压算法对所述字符串文本进行还原,得到原始数据。相应的,本发明还提供一种基于MySQL数据库的大文本字段存储系统,其特征在于,包括获取压缩模块、编码模块以及拼接存储模块;所述获取压缩模块,用于获取待存储的原始数据,根据支持的压缩算法对所述原始数据进行压缩处理,得到二进制字节数组;所述编码模块,用于采用编码工具对所述二进制字节数组进行编码,得到对应的字符串文本;所述拼接存储模块,用于获取每个压缩算法对应的唯一编码,将所述唯一编码按照预设插入位置插入所述字符串文本中,拼接得到大文本字段,并将所述大文本字段存储至数据库中。作为一种可实施方式,本发明提供的基于MySQL数据库的大文本字段存储系统还包括设置模块;所述设置模块,用于在获取待存储的原始数据之前,为每个压缩算法预先设置对应的唯一编码。作为一种可实施方式,所述获取压缩模块中的压缩算法为JDKGZIP压缩算法、JDKdeflate压缩算法、LZ4压缩算法以及Snappy压缩算法的一种。作为一种可实施方式,本发明提供的基于MySQL数据库的大文本字段存储系统还包括读取解码模块;所述读取解码模块,用于读取存储于所述数据库中的大文本字段,并依据压缩算法、唯一编码以及编码工具对所述大文本字段解码得到原始数据。作为一种可实施方式,所述读取解码模块包括读取单元和还原单元;所述读取单元,用于读取所述大文本字段中预设插入位置的唯一编码,并将所述唯一编码从所述大文本字段中剔除,根据编码工具对剔除结果进行解码,得到对应的字符串文本;所述还原单元,用于根据所述唯一编码获取对应的解压算法对所述字符串文本进行还原,得到原始数据。与现有技术相比,本技术方案具有以下优点:本发明提供的基于MySQL数据库的大文本字段存储方法和系统,其中,方法:包括根据支持的压缩算法对获取的待存储的原始数据进行压缩处理,得到二进制字节数组;并采用编码工具对二进制字节数组进行编码,得到对应的字符串文本;最后获取每个压缩算法对应的唯一编码,将唯一编码按照预设插入位置插入字符串文本中,拼接得到大文本字段,并将大文本字段存储至数据库中。本申请通过压缩加密再存储的形式,能有效的降低存储空间,而且由于重新编码对原始数据起到加密保护的作用,并以特定的唯一编码按照预设插入位置插入字符串文本中,最终生成存储的大文本字段,提高了存储安全性。附图说明图1为本发明实施例一提供的基于MySQL数据库的大文本字段存储方法的流程示意图;图2为本发明实施例二提供的基于MySQL数据库的大文本字段存储系统的结构示意图;图3为图2中读取解码模块的结构示意图。图中:100、获取压缩模块;200、编码模块;300、拼接存储模块;400、读取解码模块;410、读取单元;420、还原单元;500、设置模块。具体实施方式以下结合附图,对本发明上述的和另外的技术特征和优点进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的部分实施例,而不是全部实施例。请参阅图1,本发明实施例一提供的基于MySQL数据库的大文本字段存储方法,包括以下步骤;S100、获取待存储的原始数据,根据支持的压缩算法对原始数据进行压缩处理,得到二进制字节数组;S200、采用编码工具对二进制字节数组进行编码,得到对应的字符串文本;S300、获取每个压缩算法对应的唯一编码,将唯一编码按照预设插入位置插入字符串文本中,拼接得到大文本字段,并将大文本字段存储至数据库中。需要说明的是,原始数据可以是已经存储于数据库中的,也可以是新获取的未存储过的数据。如果是已经存储于数据库中的,则需要将原始数据从存储的位置中提取出来,在重新压缩编码加密后再存储回原来的位置。而如果是新获取的待存储的原始数据,则直接对其压缩编码加密,再依据常规的MySQL数据库的保存方式保存至对应的位置。这里的压缩编码加密指的是上述步骤S100-S300的过程。以有效降低所占用的存储空间。于本实施例中,采用的是JDK技术,也就是采用Java语言的软件开发工具包,其主要用于移动设备、嵌入式设备上的java应用程序。那么对应的支持的压缩算法也就是JDK自带压缩算法。当然,也可以采用其他开源框架的压缩算法,并不对支持的压缩算法进行限制。但是需要对每个支持的压缩算法设置一个唯一对应的唯一编码。为每个压缩算法预先设置对应的CODE码,可以是在获取待存储的原始数据之前。比如,可以是0001代表GZIP压缩算法,0002代表DEFLATE压缩算法,0003代表LZ4压缩算法以及0004代表SNAPPY压缩算法等。这里CODE码采用4个字节的数字,当然可以使用其他字符编码来实现。采用的编码工具可以适用Utf-16、Utf-32、Punycode、Base64、Quoted-printable以及MIME等多种格式编码解码。也就是说如果采用Base64编码,则后续读取中也采用Base64解码来解决。为了提高存储的安全性,将唯一编码按照预设插入位置插入字符串文本中,插入位置是统一预先设定的,可以是字符串文本中的任意位置。在插入时,从头到尾对字符串文本的字符串进行计算,在到预设插入位置时,将唯一编码插入再拼接就能得到需要的大文本字段。由于每个唯一编码就有其对应的压缩算法,从而通过加密和编码两种手段来降低泄密风险。优选的,预设位置字符串文本的开头位置。如,“0001”+字符串文本;“0002”+字符串文本。那么得到的大文本字段实际上就是经过CODE码加密的编码字符串,将其存储至对应MySQL数据库的TEXT、BLOB、MEDIUMTEXT以及MEDIUMBLOB等类型字段中。本发明提供的基于MySQL数据库的大文本字段存储方法,包括根据支持的压缩算法对获取的待存储的原始数据进行压缩处理,得到二进制字节数组;并采用编码工具对二进制字节数组进行编码,得到对应的字符串文本;最后获取每个压缩算法对应的唯一编码,将唯一编码按照预设插入位置插入字符串文本中,拼接得到大文本字段,并将大文本字段存储至数据库中。本申请通过压缩加密再存储的形式,能有效的降低存储空间,而且由于重新编码对原始数据起到加密保护的作用,并以特定的唯一编码按照预设插入位置插入字符串文本中,最终生成存储的大文本字段,提高了存储安全性。下面对上述过程举例说明:比如,待存储的原始数据为StringlongText="<divstyle=\"float:left;width:100%;margin-bottom:15px;\">\n"+"<spanstyle=\"float:left;width:100%;line-height:28px;color:#000;\"contenteditable=\"true\">本合同执行中相关的一切税费均由乙方负担。</span>\n"。则通过GZIP压缩算法和BASE64编码后的对应的字符串文本为:H4sIAAAAAAAAAFNQULBJySxTKC6pzEm1VVJIy8lPLLHKSU0rsVYoz0wpybAyNDBQtVbITSxKz8zT;TcovKcnPtTI0LaiwVrJT4FIAApvigsQ8mAG49Odk5qXqZqRmpmeUWBlZAHUrJOfn5BdZKRsYGFgr。最后追加BASE64编码的CODE码0001后拼接得到的大文本字段为:0001H4sIAAAAAAAAAFNQULBJySxTKC6pzEm1VVJIy8lPLLHKSU0rsVYoz0wpybAyNDBQtVbITSxKz8zT;TcovKcnPtTI0LaiwVrJT4FIAApvigsQ8mAG49Odk5qXqZqRmpmeUWBlZAHUrJOfn5BdZKRsYGFgr。因此,可以看出本发明有效降低大文本存储实际消耗的存储空间,根据大文本中重复字符存在的频率,可降低存储空间几倍到几十倍不等。而且由于压缩后重新BASE64编码后存储,对原数据文本起到了一定的加密作用。进一步的,本发明实施例一提供的基于MySQL数据库的大文本字段存储方法还包括以下步骤;S400、读取存储于数据库中的大文本字段,并依据压缩算法、唯一编码以及编码工具对大文本字段解码得到原始数据。上述读取的过程其实就是存储的反过程,通过唯一编码得到对应的压缩算法,通过统一的编码工具进行解码。在压缩编码过程中把压缩算法的类型追加到编码后的文本中,便于读取解压选择合适的解压还原文本的方式。唯一编码代表了压缩算法的类型。其中,依据压缩算法、唯一编码以及编码工具对大文本字段解码得到原始数据包括以下步骤;读取大文本字段中预设插入位置的唯一编码,并将唯一编码从大文本字段中剔除,根据编码工具对剔除结果进行解码,得到对应的字符串文本;根据唯一编码获取对应的解压算法对字符串文本进行还原,得到原始数据。读取唯一编码的方式为利用预设的各类唯一编码与大文本字段中的每个字符比对判断的方式,在判断为一样后实现读取。当然也可以借助其他工具方法实现。读取的唯一编码是为了获取对应的解压算法,对于大文本字段本身来说,需要将唯一编码从中剔除,得到字符串文本,再根据解压算法对字符串文本进行还原,最终得到需要使用的原始数据。基于同一发明构思,本发明实施例还提供一种基于MySQL数据库的大文本字段存储系统,该系统的实施可参照上述方法的过程实现,重复之处不再冗述。如图2所示,是本发明实施例二提供的基于MySQL数据库的大文本字段存储系统的结构示意图,包括获取压缩模块100、编码模块200以及拼接存储模块300;获取压缩模块100用于获取待存储的原始数据,根据支持的压缩算法对原始数据进行压缩处理,得到二进制字节数组;编码模块200用于采用编码工具对二进制字节数组进行编码,得到对应的字符串文本;拼接存储模块300用于获取每个压缩算法对应的唯一编码,将唯一编码按照预设插入位置插入字符串文本中,拼接得到大文本字段,并将大文本字段存储至数据库中。本申请通过压缩加密再存储的形式,能有效的降低存储空间,而且由于重新编码对原始数据起到加密保护的作用,并以特定的唯一编码按照预设插入位置插入字符串文本中,最终生成存储的大文本字段,提高了存储安全性。进一步的,本发明实施例二提供的基于MySQL数据库的大文本字段存储系统还包括设置模块500;设置模块500用于在获取待存储的原始数据之前,为每个压缩算法预先设置对应的唯一编码。且获取压缩模块100中的压缩算法为JDKGZIP压缩算法、JDKdeflate压缩算法、LZ4压缩算法以及Snappy压缩算法的一种。本发明实施例二提供的基于MySQL数据库的大文本字段存储系统还包括读取解码模块400;读取解码模块400用于读取存储于数据库中的大文本字段,并依据压缩算法、唯一编码以及编码工具对大文本字段解码得到原始数据。如图3所示,为读取解码模块400的结构示意图;包括读取单元410和还原单元420;读取单元410用于读取大文本字段中预设插入位置的唯一编码,并将唯一编码从大文本字段中剔除,根据编码工具对剔除结果进行解码,得到对应的字符串文本;还原单元420用于根据唯一编码获取对应的解压算法对字符串文本进行还原,得到原始数据。本发明虽然已以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以利用上述揭示的方法和技术内容对本发明技术方案做出可能的变动和修改,因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化及修饰,均属于本发明技术方案的保护范围。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1