数据库的数据操作请求的处理方法和系统的制作方法

文档序号:9616260阅读:482来源:国知局
数据库的数据操作请求的处理方法和系统的制作方法
【专利说明】
【技术领域】
[0001]本发明涉及数据库技术领域,特别涉及一种数据库的数据操作请求的处理方法和系统。
【【背景技术】】
[0002]数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。随着信息技术和市场的发展数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。数据库有很多种类型,从最简单的存储各种数据表格的数据库到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。按照存储的数据的组织形式,数据库的种类可分为层次型数据库、网络型数据库和关系型数据库。目前应用较为广泛的数据库包括 DB2、Oracle Informix、Sybase、SQL Server 和 mySQL 等。
[0003]用户可以对数据库中的数据进行新增、截取、更新、删除等操作。然而,数据库针对用户的数据操作请求做出的响应速度,随着数据库存储的数据量的增大而延长,尤其是当数据库要处理海量的数据操作请求时,响应速度就更慢了。

【发明内容】

[0004]基于此,有必要提供一种可提高对数据库的数据操作请求的响应速度的数据库的数据操作请求的处理方法和系统。
[0005]一种数据库的数据操作请求的处理方法,包括以下步骤:
[0006]接收对指定数据表的写数据请求,所述写数据请求中包括关键字以及关键字对应的更新内容;
[0007]在所述数据表对应的存储于内存的哈希表中查找所述写数据请求中包括的关键字;
[0008]若在所述哈希表中查找到所述写数据请求中包括的关键字,则在所述哈希表中根据所述更新内容修改所述写数据请求中包括的关键字对应的记录;
[0009]生成可实现对所述哈希表的操作的SQL语句,将所述SQL语句插入到所述数据表的更新语句队列中;
[0010]向发送所述写数据请求的请求方返回处理结果。
[0011]在其中一个实施例中,所述方法还包括:
[0012]若未在所述哈希表中查找到所述写数据请求中包括的关键字,则在存储于数据库的所述数据表中查找所述写数据请求中包括的关键字;
[0013]若在所述数据表中查找到所述写数据请求中包括的关键字,则读取所述数据表中与所述写数据请求中包括的关键字对应的值,将所述写数据请求中包括的关键字以及所述对应的值写入所述哈希表中,并在所述哈希表中根据所述更新内容修改所述写数据请求中包括的关键字对应的记录;
[0014]若未在所述数据表中查找到所述写数据请求中包括的关键字,则根据所述更新内容生成所述写数据请求中包括的关键字对应的值,将所述写数据请求中包括的关键字以及所述生成的值写入所述哈希表中。
[0015]在其中一个实施例中,所述方法还包括:
[0016]在所述生成可实现对所述哈希表的操作的SQL语句之后,将所述SQL语句写入到日志文件中;
[0017]根据所述更新语句队列修改所述数据表;
[0018]当所述更新语句队列中的SQL语句被破坏后,根据所述日志文件修改所述数据表。
[0019]在其中一个实施例中,所述方法还包括:
[0020]接收对指定数据表的读数据请求,所述读数据请求中包括关键字;
[0021]在所述数据表对应的存储于内存的哈希表中查找所述读数据请求中包括的关键字;
[0022]若在所述哈希表中查找到所述读数据请求中包括的关键字,则在所述哈希表中读取所述读数据请求中包括的关键字对应的值;
[0023]根据所述对应的值向发送所述读数据请求的请求方返回处理结果。
[0024]在其中一个实施例中,所述方法还包括:
[0025]若未在所述哈希表中查找到所述读数据请求中包括的关键字,则在存储于数据库的所述数据表中查找所述读数据请求中包括的关键字;
[0026]若在所述数据表中查找到所述读数据请求中包括的关键字,则读取所述数据表中与所述读数据请求中包括的关键字对应的值,将所述写数据请求中包括的关键字以及所述对应的值写入所述哈希表中,根据所述对应的值向发送所述读数据请求的请求方返回处理结果。
[0027]若未在所述数据表中查找到所述读数据请求中包括的关键字,则向发送所述读数据请求的请求方返回表示查找失败的结果。
[0028]一种数据库的数据操作请求的处理系统,包括:
[0029]请求获取模块,用于接收对指定数据表的写数据请求,所述写数据请求中包括关键字以及关键字对应的更新内容;
[0030]哈希表查找模块,用于在所述数据表对应的存储于内存的哈希表中查找所述写数据请求中包括的关键字;
[0031]哈希表更新模块,用于若在所述哈希表中查找到所述写数据请求中包括的关键字,则在所述哈希表中根据所述更新内容修改所述写数据请求中包括的关键字对应的记录;
[0032]SQL语句生成模块,用于生成可实现对所述哈希表的操作的SQL语句;
[0033]队列写入模块,用于将所述SQL语句插入到所述数据表的更新语句队列中;
[0034]写结果返回模块,用于向发送所述写数据请求的请求方返回处理结果。
[0035]在其中一个实施例中,所述系统还包括:
[0036]数据表查找模块,用于若未在所述哈希表中查找到所述写数据请求中包括的关键字,则在存储于数据库的所述数据表中查找所述写数据请求中包括的关键字;
[0037]数据表读取模块,用于若在所述数据表中查找到所述写数据请求中包括的关键字,则读取所述数据表中与所述写数据请求中包括的关键字对应的值;
[0038]所述哈希表更新模块还用于将所述写数据请求中包括的关键字以及所述对应的值写入所述哈希表中,并在所述哈希表中根据所述更新内容修改所述写数据请求中包括的关键字对应的记录;
[0039]所述哈希表更新模块还用于若未在所述数据表中查找到所述写数据请求中包括的关键字,则根据所述更新内容生成所述写数据请求中包括的关键字对应的值,将所述写数据请求中包括的关键字以及所述生成的值写入所述哈希表中。
[0040]在其中一个实施例中,所述系统还包括:
[0041]日志文件写入模块,用于在所述生成可实现对所述哈希表的操作的SQL语句之后,将所述SQL语句写入到日志文件中;
[0042]第一数据表更新模块,用于根据所述更新语句队列修改所述数据表;
[0043]第二数据表更新模块,用于当所述更新语句队列中的SQL语句被破坏后,根据所述日志文件修改所述数据表。
[0044]在其中一个实施例中,所述请求获取模块还用于接收对指定数据表的读数据请求,所述读数据请求中包括关键字;
[0045]所述哈希表查找模块还用于在所述数据表对应的存储于内存的哈希表中查找所述读数据请求中包括的关键字;
[0046]所述系统还包括:
[0047]哈希表读取模块,用于若在所述哈希表中查找到所述读数据请求中包括的关键字,则在所述哈希表中读取与所述读数据请求中包括的关键字对应的值;
[0048]读结果返回模块,用于根据所述对应的值向发送所述读数据请求的请求方返回数据读取结果。
[0049]在其中一个实施例中,所述数据表查找模块还用于若未在所述哈希表中查找到所述读数据请求中包括的关键字,则在存储于数据库的所述数据表中查找所述读数据请求中包括的关键字;
[0050]所述数据表读取模块还用于若在所述数据表中查找到所述读数据请求中包括的关键字,则读取所述数据表中与所述读数据请求中包括的关键字对应的值;
[0051]所述哈希表更新模块还用于将所述读数据请求中包括的关键字以及所述对应的值写入所述哈希表中;
[0052]所述读结果返回模块还用于根据所述对应的值向发送所述读数据请求的请求方返回处理结果。
[0053]上述数据库的数据操作请求的处理方法和系统,在获取到对指定数据表的写数据请求后,在指定数据表对应的存储于内存的哈希表中查找写数据请求中包括的关键字,若查找到,则在哈希表中对关键字对应的值进行相应的更新,为了保证存储于内存的哈希表与存储于数据库的数据表的数据一致性,生成可实现对哈希表的操作的SQL语句,将该SQL语句插入到指定数据表的更新语句队列中,以方便后续对指定数据表进行与哈希表相同的操作;上述方法和系统,可在指定数据表对应的存储于内存的哈希表中进行相应的数据更新操作之后,而不需要在存储于数据库的数据表中进行该数据更新操作之后,即可向请求方返回处理结果,由于对存储于内存的哈希表进行数据更新操作的速度远远大于对存储于数据库的数据表进行数据更新操作的速度,因此,可大大提高对数据库的数据操作请求的响应速度。
【【附图说明】】
[0054]图1为一个实施例中的数据库的数据操作请求的处理方法的流程示意图;
[0055]图2为一个实施例中的数据库的数据操作请求的处理方法的流程示意图;
[0056]图3A
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1