[发明专利]一种基于内存多级缓存的数据快速分页查询访问的方法在审
申请号: | 201910495179.5 | 申请日: | 2019-06-10 |
公开(公告)号: | CN110209701A | 公开(公告)日: | 2019-09-06 |
发明(设计)人: | 刘碧楠;谭炜波;蒋旭;孙磊;吴嵩;姬涛涛;顾云苏 | 申请(专利权)人: | 天津神舟通用数据技术有限公司 |
主分类号: | G06F16/2455 | 分类号: | G06F16/2455;G06F16/23 |
代理公司: | 天津盛理知识产权代理有限公司 12209 | 代理人: | 王利文 |
地址: | 300384 天津市西青区海*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 局部缓存 全局缓存 内存 事务 多级缓存 哈希表 查询 分页 行数 最大限度减少 数据库启动 数据库系统 并发冲突 更新性能 事务发起 事务开始 事务提交 数值相加 表更新 查询表 查找表 累加 创建 访问 查找 更新 维护 | ||
本发明涉及一种基于内存多级缓存的数据快速分页查询访问的方法,包括以下步骤:在数据库启动时,创建一张哈希表作为全局缓存结构;在事务开始时,创建一张哈希表作为该事务的局部缓存结构;在事务进行的过程中,完成表更新操作;当一个事务发起表的总行数查询时,以OID为键在全局缓存结构中查找表的总行数,以OID为键在事务局部缓存结构中查找当前事务影响该表的变化行数,两个数值相加作为此次查询表的总行数;在事务提交时,数据库系统将更新过的当前事务局部缓存结构中各个表的变化行数累加到全局缓存结构中相应表的总行数上。本发明设计合理,大大减少并发冲突,同时最大限度减少了内存中表的总行数的维护对表的更新性能产生的影响。
技术领域
本发明属于数据存储与查询技术领域,尤其是一种基于内存多级缓存的数据快速分页查询访问的方法。
背景技术
在当前数据库应用系统中,大量使用数据分页的方式进行展示,即先显示一部分数据,然后随着用户点击“下一页”时再显示其它数据,这被称为分页查询。
分页查询首先要获取数据的总行数,通常这需要将表整个扫描一遍,对于较大数据量的表,这一查询耗费的时间周期较长,由于这扫描是在用户获得首页数据前发生的,严重影响了用户的使用体验。
数据分页的主要困难在于初始时获得数据的总行数,而总行数需要通过时间计算获得,有些产品采用在相应的数据表中维护总行数的做法来解决这个困难,但是由于数据的不断变化,维护代价较大,会严重拖慢了数据的更新操作,这对较多更新的用户会产生较大性能下降的影响。
发明内容
本发明的目的在于克服现有技术的不足,提出一种设计合理、性能稳定且速度快的基于内存多级缓存的数据快速分页查询访问的方法。
本发明解决其技术问题是采取以下技术方案实现的:
一种基于内存多级缓存的数据快速分页查询访问的方法,包括以下步骤:
步骤1:在数据库启动时,数据库系统在内存中以表的OID为键,以表的总行数为值,创建一张哈希表作为全局缓存结构;
步骤2:在事务开始时,数据库系统在内存中以表的OID为键,以表的变化行数为值,创建一张哈希表作为该事务的局部缓存结构;
步骤3:在事务进行的过程中,随着当前事务对各个表的更新操作,数据库系统以表的OID为键在步骤2建立的当前事务局部缓存结构中修改相应表的变化行数,完成表更新操作;
步骤4:当一个事务发起表的总行数查询时,以表的OID为键在步骤1建立的全局缓存结构中查找表的总行数,根据事务号找到当前事务的局部缓存结构,以表的OID为键在事务局部缓存结构中查找当前事务影响该表的变化行数,两个数值相加作为此次查询表的总行数;
步骤5:在事务提交时,数据库系统将步骤3更新过的当前事务局部缓存结构中各个表的变化行数累加到步骤1创建的全局缓存结构中相应表的总行数上;
所述OID为对象唯一标志符。
所述步骤3的具体处理方法包括以下步骤:
⑴执行更新语句时,根据不同操作是插入数据还是删除数据,按下述方式执行不同的操作:
①如果当前操作是在表中插入一行数据,则通过表的OID,在当前事务的局部缓存中找到对应的节点,将节点中记录的行数加一;
②如果当前操作是在表中删除一行数据,则通过表的OID,在当前事务的局部缓存中找到对应的节点,将节点中记录的行数减一;
⑵如果事务发生回滚,根据回滚操作的不同类型,按下述方式执行不同的过程:
①如果当前回滚操作是回滚插入一行数据,则通过表的OID,在当前事务的局部缓存中找到对应的节点,将节点中记录的行数减一;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天津神舟通用数据技术有限公司,未经天津神舟通用数据技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910495179.5/2.html,转载请声明来源钻瓜专利网。