本申请公开了数据存储方法和装置。该方法的一具体实施方式包括:响应于将待存储数据写入数据库的缓存存储区域中的压缩数据页,判断压缩数据页中剩余的存储空间是否大于存储空间阈值;若否,确定非压缩数据页中用于生成压缩数据页的非压缩数据页;对所确定的非压缩数据页进行压缩,生成压缩数据页。实现了预先生成压缩数据页,从而使得每一次将数据写入压缩数据页时,均可确保压缩数据页中具有足够的存储空间存储写入的数据,从而减轻将数据写入压缩数据页时的系统开销,进而提升系统的写入效率。
【技术实现步骤摘要】
本申请涉及计算机领域,具体涉及数据库领域,尤其涉及数据存储方法和装置。
技术介绍
在对数据库的访问中,通常将访问频次较高的热数据存储在数据库的缓存存储区域中。同时,可以将热数据进行压缩后存储在缓存存储区域的压缩数据页中,使得缓存存储区域中存储更多的热数据,进一步提升对热数据的命中率。目前,通常采用的方式为:直接向压缩数据页中写入数据,在压缩数据页上剩余的存储空间不足时,才对非压缩数据页进行压缩生成新的压缩数据页。然而,当采用上述方式将数据写入压缩数据页时,一方面,因对非压缩数据页进行压缩生成新的压缩数据页,造成将热数据写入压缩数据页的线程被挂起,增加系统开销。另一方面,当生成新的压缩数据页失败时,会引起页面分裂,因页面分裂需要对描述数据页之间的关系的数据结构进行加锁操作,造成并发等待的问题,进一步增加系统开销。
技术实现思路
本申请提供了数据存储方法和装置,用于解决上述
技术介绍
部分存在的技术问题。第一方面,本申请提供了数据存储方法,该方法包括:响应于将待存储数据写入数据库的缓存存储区域中的压缩数据页,判断压缩数据页中剩余的存储空间是否大于存储空间阈值,其中,缓存存储区域包括:用于存储待存储数据的非压缩数据页以及用于存储待存储数据对应的压缩数据的压缩数据页;若否,确定非压缩数据页中用于生成压缩数据页的非压缩数据页;对所确定的非压缩数据页进行压缩,生成压缩数据页,以使得在下一次将待存储数据写入压缩数据页时,利用生成的压缩数据页存储待存储数据。第二方面,本申请提供了数据存储装置,该装置包括:响应单元,配置用于响应于将待存储数据写入数据库的缓存存储区域中的压缩数据页,判断压缩数据页中剩余的存储空间是否大于存储空间阈值,其中,缓存存储区域包括:用于存储待存储数据的非压缩数据页以及用于存储待存储数据对应的压缩数据的压缩数据页;确定单元,配置用于当压缩数据页中剩余的存储空间小于存储空间阈值,确定非压缩数据页中用于生成压缩数据页的非压缩数据页;压缩单元,配置用于对所确定的非压缩数据页进行压缩,生成压缩数据页,以使得在下一次将待存储数据写入压缩数据页时,利用生成的压缩数据页存储待存储数据。本申请提供的数据存储方法和装置,通过响应于将待存储数据写入数据库的缓存存储区域中的压缩数据页,判断压缩数据页中剩余的存储空间是否大于存储空间阈值;若否,确定非压缩数据页中用于生成压缩数据页的非压缩数据页;对所确定的非压缩数据页进行压缩,生成压缩数据页,以使得在下一次将待存储数据写入压缩数据页时,利用生成的压缩数据页存储待存储数据。实现了预先生成压缩数据页,从而使得每一次将数据写入压缩数据页时,均可确保压缩数据页中具有足够的存储空间存储写入的数据,从而减轻将数据写入压缩数据页时的系统开销,进而提升系统的写入效率。附图说明通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:图1是本申请可以应用于其中的示例性系统架构图;图2示出了根据本申请的数据存储方法的一个实施例的流程图;图3示出了利用空闲压缩线程进行压缩的原理图;图4示出了对非压缩数据页进行压缩的流程图;图5示出了根据本申请的数据存储装置的一个实施例的结构示意图;图6是适于用来实现本申请实施例的终端设备或服务器的计算机系统的结构示意图。具体实施方式下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关专利技术,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关专利技术相关的部分。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。图1示出了可以应用本申请的数据存储方法或数据存储装置的实施例的示例性系统架构100。如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供传输链路的介质。网络104可以包括各种连接类型,例如有线、无线传输链路或者光纤电缆等等。用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯应用,例如网络安全类应用、即时通信工具等。终端设备101、102、103可以是具有显示屏并且支持网络通信的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、MP3播放器(MovingPictureExpertsGroupAudioLayerIII,动态影像专家压缩标准音频层面3)、MP4(MovingPictureExpertsGroupAudioLayerIV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103上的应用提供数据访问支持的服务器。服务器可以对接收到的数据访问请求进行处理,并将处理结果(例如数据库中的数据)反馈给终端设备。应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。请参考图2,其示出了根据本申请的数据存储方法的一个实施例的流程200。需要说明的是,本申请实施例所提供的数据存储方法一般由图1中的服务器105执行,相应地,数据存储装置一般设置于服务器105中。该方法包括以下步骤:步骤201,响应于将待存储数据写入数据库的缓存存储区域中的压缩数据页,判断压缩数据页中剩余的存储空间是否大于存储空间阈值。在本实施例中,缓存存储区域包括:用于存储待存储数据的非压缩数据页以及用于存储待存储数据对应的压缩数据的压缩数据页。该缓存存储区域可以为在对数据库的访问过程中,用于存储用户频繁访问的数据(也可称之为热数据)的存储区域,也可将该缓存存储区域称之为bufferpool。在本实施例中,由于在每一次存储数据,即将数据写入数据表中时,是以记录为单位进行写入的。因此,存储空间阈值的大小可以为当前写入到数据表中占用的存储空间最大的记录所占用的存储空间。在本实施例中,压缩数据页中的数据可以包括:压缩数据以及以追加写方式本文档来自技高网...
【技术保护点】
一种数据存储方法,其特征在于,所述方法包括:响应于将待存储数据写入数据库的缓存存储区域中的压缩数据页,判断所述压缩数据页中剩余的存储空间是否大于存储空间阈值,其中,所述缓存存储区域包括:用于存储待存储数据的非压缩数据页以及用于存储待存储数据对应的压缩数据的压缩数据页;若否,确定所述非压缩数据页中用于生成压缩数据页的非压缩数据页;对所确定的非压缩数据页进行压缩,生成压缩数据页,以使得在下一次将待存储数据写入压缩数据页时,利用生成的压缩数据页存储待存储数据。
【技术特征摘要】
1.一种数据存储方法,其特征在于,所述方法包括:
响应于将待存储数据写入数据库的缓存存储区域中的压缩数据
页,判断所述压缩数据页中剩余的存储空间是否大于存储空间阈值,
其中,所述缓存存储区域包括:用于存储待存储数据的非压缩数据页
以及用于存储待存储数据对应的压缩数据的压缩数据页;
若否,确定所述非压缩数据页中用于生成压缩数据页的非压缩数
据页;
对所确定的非压缩数据页进行压缩,生成压缩数据页,以使得在
下一次将待存储数据写入压缩数据页时,利用生成的压缩数据页存储
待存储数据。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述压缩数据页中剩余的存储空间小于存储空间阈值时,从预
先创建的压缩线程中选取出用于对非压缩数据页进行压缩、生成压缩
数据页的压缩线程。
3.根据权利要求2所述的方法,其特征在于,所述确定所述非压
缩数据页中用于生成压缩数据页的非压缩数据页包括:
利用所述压缩线程接收压缩请求,所述压缩请求包括数据页标识;
当所述数据页标识存在于非压缩数据页链表中且所述数据页标识
对应的非压缩数据页未被压缩过时,将所述非压缩数据页确定为用于
生成压缩数据页的非压缩数据页,其中,所述非压缩数据页链表包括
多个节点,每一个节点对应一个所述非压缩数据页的数据页标识。
4.根据权利要求3所述的方法,其特征在于,在响应于将待存储
数据写入数据库的缓存存储区域中的压缩数据页之后,所述方法还包
括:
将所述待存储数据写入所述非压缩数据页中的预设非压缩数据
\t页。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
接收输入的存储空间设置指令;
设置非压缩数据页与压缩数据页的存储空间的大小。
6.一种数据存储装置,其特征在于,所述装置包括:
响应单元,配置用于响应于将待存储数据写入数据库的...
【专利技术属性】
技术研发人员:孔智,尹博学,
申请(专利权)人:北京百度网讯科技有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。