CN102968507B - 基于缓存表的数据查询方法 - Google Patents
基于缓存表的数据查询方法 Download PDFInfo
- Publication number
- CN102968507B CN102968507B CN201210545104.1A CN201210545104A CN102968507B CN 102968507 B CN102968507 B CN 102968507B CN 201210545104 A CN201210545104 A CN 201210545104A CN 102968507 B CN102968507 B CN 102968507B
- Authority
- CN
- China
- Prior art keywords
- data
- cache table
- query
- inquiry
- method based
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于缓存表的数据查询方法,包括以下步骤:S1:接收数据查询请求,求得哈希值;S2:判断该数据是否为首次查询,是则执行步骤S3,否则执行步骤S4;S3:从交易表中读取请求查询的数据,并将哈希值以及该数据或者该数据ROWID值***到缓存表的当前缓存区内缓存一段预定时间,返回数据;S4:判断距上次查询是否超过所述一段预定时间,是则执行步骤S3,否则执行步骤S5;S5:根据哈希值查询当前缓存区,从中读取并返回请求查询的数据或者根据该数据ROWID值从交易表中返回数据。本发明的基于缓存表的数据查询方法,提高多用户、高并发的联机查询服务,保证每次网银查询时间控制在最优时间内。
Description
技术领域
本发明涉及数据查询方法,尤其涉及一种基于缓存表的数据查询方法。
背景技术
现有技术中,是通过查询条线生成SQL直接进行数据库表查询来获取数据,由于渠道查询并发大,数据多,大量查询导致的查询效率低。
发明内容
本发明所要解决的技术问题是提供一种基于缓存表的数据查询方法,提高多用户、高并发的联机查询服务,保证每次网银查询时间控制在最优时间内。
为了解决上述技术问题,本发明提供了一种基于缓存表的数据查询方法,用于金融交易数据的查询,包括以下步骤:
S1:接收数据查询请求,并根据所述查询请求中的查询条件求得哈希值;
S2:根据查询条件判断该请求查询的数据是否为首次查询,如果是,则执行步骤S3,如果否,则执行步骤S4;
S3:从交易表中读取请求查询的数据,并将所述求得的哈希值以及该数据或者该数据在交易表中的ROWID值***到缓存表的当前缓存区内缓存一段预定时间,返回请求查询的数据;
S4:判断对请求查询的数据的本次查询距上次查询是否超过所述一段预定时间,如果是,则执行步骤S3,如果否,则执行步骤S5;
S5:根据所述求得的哈希值查询所述缓存表的当前缓存区,从中读取并返回请求查询的数据或者根据该数据在交易表中的ROWID值从交易表中返回请求查询的数据。
作为优选,所述缓存表为一个或多个
作为优选,每个所述缓存表除包括所述当前缓存区外,还包括一个或多个其他缓存区,所述其他缓存区选择性地存储所述一段预定时间之前的数据信息。
作为优选,在步骤S1中,所述查询请求包括翻页操作,所述查询条件包括借贷标识、金额、所有帐号信息。
作为优选,所述一段预定时间为30分钟。
与现有技术相比,本发明的基于缓存表的数据查询方法的有益效果在于:
1、通过设置缓存表,提高多用户、高并发的联机查询服务,保证每次网银查询时间控制在最优时间内。
2、建立多个缓存表、采用按时分区等技术提高并行多表下的缓解堵塞问题,使用多缓存表的方式降低缓存表的数据量级;通过指定分区进行查询,从而进一步减少了返查时的数据量。
附图说明
图1为本发明的实施例的基于缓存表的数据查询方法的流程图。
具体实施方式
下面结合附图和具体实施例对本发明的实施例的基于缓存表的数据查询方法作进一步详细描述,但不作为对本发明的限定。
图1为本发明的实施例的基于缓存表的数据查询方法的流程图。如图1所示,本发明的实施例的基于缓存表的数据查询方法,用于金融交易数据的查询,包括以下步骤:
S1:接收数据查询请求,并根据所述查询请求中的查询条件求得哈希值。通过哈希算法(一种散列算法)求得哈希值,哈希值是一段数据唯一且极其紧凑的数值表示形式。如果散列一段明文而且哪怕只更改该段落的一个字母,随后的哈希都将产生不同的值。因此每一个数据的哈希值是唯一的。
S2:根据查询条件判断该请求查询的数据是否为首次查询,如果是,则执行步骤S3,如果否,则执行步骤S4。可以通过任何现有的算法进行该判断。
S3:从交易表中读取请求查询的数据,并将所述求得的哈希值以及该数据或者该数据在交易表中的ROWID值***到缓存表的当前缓存区内缓存一段预定时间,返回请求查询的数据。ROWID就是唯一标志记录物理位置的一个标识,在交易表中对数据起到快速索引、定位的作用,非常有利于对包含海量数据的数据库进行数据操作。
S4:判断对请求查询的数据的本次查询距上次查询是否超过所述一段预定时间,如果是,则执行步骤S3,如果否,则执行步骤S5;
S5:根据所述求得的哈希值查询所述缓存表的当前缓存区,从中读取并返回请求查询的数据或者根据该数据在交易表中的ROWID值从交易表中返回请求查询的数据。针对不同的数据查询请求,尤其针对金融交易类海量数据查询请求,需要处理不同种类的数据。当从交易表中读取的查询数据相对简单的时候,可以将哈希值以及该数据一并***到当前缓存区,便于此后发生相同查询时直接从缓存表中读取并返回请求查询的数据;当从交易表中读取的查询数据相对复杂的时候,可以选择将哈希值以及该数据在交易表中的ROWID值***到当前缓存区,此后发生相同查询时,根据哈希值查询到缓存表当前缓存区中相关数据信息,然后通过ROWID值快速准确地访问交易表中完整数据内容,从交易表中返回请求查询的数据。
所述一段预定时间可以根据不同的需要进行设定,例如可以设定为30分钟,所述当前缓存区存储30分钟内的查询信息。对于一般的数据查询请求,当前缓存区存储30分钟内的查询信息可最大程度满足数据查询的快速要求,并且占有***资源最少,达到最优配置。
作为一种改进,缓存表为多个,将查询的数据、该数据哈希值以及ROWID值***到多个缓存表中的一张中,通过这样多缓存表的方式可以降低缓存表的数据量级。
作为本实施例的优选方案,每个所述缓存表除包括所述当前缓存区外,还包括一个或多个其他缓存区,所述其他缓存区选择性地存储所述一段预定时间之前的数据信息。当前缓存区缓存预定时间内(例如30分钟)的数据,其他缓存区可以根据需要,例如针对特定时期满足大量或者少量查询请求时,存储预定时间之前的数据信息,并可以动态的将更早期的数据进行清理。举例说明,其他缓存区可以包括隔离缓存区和清理区,针对当前缓存区缓存30分钟内的数据,隔离缓存区可以存储这30分钟之前一段时间(例如也是30分钟)的数据作为查询请求的备用,清理区则是存储有再早期的数据并且经过清理后的缓存表的一部分。这种按时分区的方式,通过对当前缓存区这样的一个指定分区进行查询,从而进一步减少了返查时的数据量,提高并行多表下的缓解堵塞问题。
作为另一种改进,在步骤S1中,所述查询请求包括翻页操作,所述查询条件包括借贷标识、金额、所有帐号信息。
为了更好地说明本发明的实施例的基于缓存表的数据查询方法,这里以网银当日查询为例进一步说明。计算机化试验信息台(CTIS)接收前端发起的当日交易查询请求,将请求中的查询条件(可以是包括借贷标识、金额、所有账号信息)求得哈希值(hash),根据请求条件判断是否为首次查询。若不是首次查询,将直接根据哈希码(hashcode)查询缓存表中的对应分区,若在半小时内有匹配的查询记录,则关联对应的缓存表查询结果将交易数据返回给计算机化试验信息台(CTIS)接收前端;若是首次查询或上次查询时间已超过半小时,则根据查询条件,则关联交易表读取交易数据,并将交易数据或者ROWID以及主要交易数据的哈希值***到缓存表中返回给计算机化试验信息台(CTIS)接收前端。
以上实施例仅为本发明的示例性实施例,不用于限制本发明,本发明的保护范围由权利要求书限定。本领域技术人员可以在本发明的实质和保护范围内,对本发明做出各种修改或等同替换,这种修改或等同替换也应视为落在本发明的保护范围内。
Claims (5)
1.一种基于缓存表的数据查询方法,用于金融交易数据的查询以优化每次网银查询时间,其特征在于,包括以下步骤:
S1:接收数据查询请求,并根据所述查询请求中的查询条件求得哈希值,所述查询条件包括借贷标识、金额、所有帐号信息;
S2:根据查询条件判断该请求查询的数据是否为首次查询,如果是,则执行步骤S3,如果否,则执行步骤S4;
S3:从交易表中读取请求查询的数据,并将所述求得的哈希值以及该数据或者该数据在交易表中的ROWID值***到缓存表的当前缓存区内缓存一段预定时间,返回请求查询的数据;
S4:判断对请求查询的数据的本次查询距上次查询是否超过所述一段预定时间,如果是,则执行步骤S3,如果否,则执行步骤S5;
S5:根据所述求得的哈希值查询所述缓存表的当前缓存区,从中读取并返回请求查询的数据或者根据该数据在交易表中的ROWID值从交易表中返回请求查询的数据。
2.根据权利要求1所述的基于缓存表的数据查询方法,其特征在于,所述缓存表为一个或多个。
3.根据权利要求2所述的基于缓存表的数据查询方法,其特征在于,每个所述缓存表除包括所述当前缓存区外,还包括一个或多个其他缓存区,所述其他缓存区选择性地存储所述一段预定时间之前的数据信息。
4.根据权利要求1所述的基于缓存表的数据查询方法,其特征在于,在步骤S1中,所述查询请求包括翻页操作。
5.根据权利要求1至4中任一项所述的基于缓存表的数据查询方法,其特征在于,所述一段预定时间为30分钟。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210545104.1A CN102968507B (zh) | 2012-12-14 | 2012-12-14 | 基于缓存表的数据查询方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210545104.1A CN102968507B (zh) | 2012-12-14 | 2012-12-14 | 基于缓存表的数据查询方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102968507A CN102968507A (zh) | 2013-03-13 |
CN102968507B true CN102968507B (zh) | 2016-07-20 |
Family
ID=47798645
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210545104.1A Active CN102968507B (zh) | 2012-12-14 | 2012-12-14 | 基于缓存表的数据查询方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102968507B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105224694A (zh) * | 2015-11-10 | 2016-01-06 | 中国建设银行股份有限公司 | 一种汇总信息查询方法、装置及*** |
CN105512222A (zh) * | 2015-11-30 | 2016-04-20 | 中国建设银行股份有限公司 | 数据查询方法及***和数据读取方法及*** |
CN106202254A (zh) * | 2016-06-30 | 2016-12-07 | 上海斐讯数据通信技术有限公司 | 一种查询方法及数据查询*** |
CN108268476B (zh) * | 2016-12-30 | 2021-11-30 | 北京国双科技有限公司 | 数据查询方法及装置 |
CN107436910B (zh) * | 2017-04-14 | 2020-08-18 | 阿里巴巴集团控股有限公司 | 一种数据查询方法和装置 |
CN106951573A (zh) * | 2017-04-27 | 2017-07-14 | 努比亚技术有限公司 | 一种直播互动数据加载方法、服务器及计算机可读介质 |
CN107784073B (zh) * | 2017-09-21 | 2020-03-27 | 中国平安财产保险股份有限公司 | 一种本地缓存的数据查询方法、存储介质和服务器 |
CN109343961B (zh) * | 2018-10-12 | 2021-07-09 | Oppo广东移动通信有限公司 | 内存信息的处理方法、装置、存储介质及终端 |
CN109377226A (zh) * | 2018-10-30 | 2019-02-22 | 深圳市元征科技股份有限公司 | 一种交易信息管理方法及相关设备 |
CN111193706B (zh) * | 2019-11-25 | 2022-03-15 | 泰康保险集团股份有限公司 | 一种身份验证方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101110074A (zh) * | 2007-01-30 | 2008-01-23 | 浪潮乐金信息***有限公司 | 基于文件***缓存的数据加速查询方法 |
CN101127048A (zh) * | 2007-08-20 | 2008-02-20 | 华为技术有限公司 | 一种查询结果处理方法与装置 |
CN102542034A (zh) * | 2011-12-23 | 2012-07-04 | 北京人大金仓信息技术股份有限公司 | 一种数据库接口的结果集缓存方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7277426B2 (en) * | 2002-05-24 | 2007-10-02 | Mosaid Technologies, Inc. | Method and apparatus for reordering entries in a multi probe lookup |
US7349925B2 (en) * | 2004-01-22 | 2008-03-25 | International Business Machines Corporation | Shared scans utilizing query monitor during query execution to improve buffer cache utilization across multi-stream query environments |
CN101458706B (zh) * | 2008-11-11 | 2012-06-27 | 全旅通(北京)信息服务有限公司 | 一种准确查询gds航班缓存数据的方法和*** |
CN102117309B (zh) * | 2010-01-06 | 2013-04-17 | 卓望数码技术(深圳)有限公司 | 一种数据缓存***和数据查询方法 |
CN102467572B (zh) * | 2010-11-17 | 2013-10-02 | 英业达股份有限公司 | 支持重复数据删除程序的数据区块查询方法 |
-
2012
- 2012-12-14 CN CN201210545104.1A patent/CN102968507B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101110074A (zh) * | 2007-01-30 | 2008-01-23 | 浪潮乐金信息***有限公司 | 基于文件***缓存的数据加速查询方法 |
CN101127048A (zh) * | 2007-08-20 | 2008-02-20 | 华为技术有限公司 | 一种查询结果处理方法与装置 |
CN102542034A (zh) * | 2011-12-23 | 2012-07-04 | 北京人大金仓信息技术股份有限公司 | 一种数据库接口的结果集缓存方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102968507A (zh) | 2013-03-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102968507B (zh) | 基于缓存表的数据查询方法 | |
CN103530378B (zh) | 数据分页查询与数据库的构建的方法与装置 | |
CN110321344B (zh) | 关联数据的信息查询方法、装置、计算机设备及存储介质 | |
CN103729471B (zh) | 数据库查询方法和装置 | |
CN102163195B (zh) | 一种基于分布式、异构数据库统一视图的查询优化方法 | |
CN104685498B (zh) | 聚合/分组操作的硬件实现方式:散列表方法 | |
CN104123340B (zh) | 一种数据库分表分页查询方法及*** | |
CN104361113B (zh) | 一种内存‑闪存混合存储模式下的olap查询优化方法 | |
CN104794146B (zh) | 商品实时筛选和排序的方法和装置 | |
CN104408159B (zh) | 一种数据关联、加载、查询方法及装置 | |
CN102682108B (zh) | 一种行列混合的数据库存储方法 | |
EP3251033B1 (en) | Hybrid data distribution in a massively parallel processing architecture | |
CN107783980A (zh) | 索引数据生成及数据查询方法及装置、存储和查询*** | |
CN102915382A (zh) | 一种基于索引的数据库的数据查询方法和装置 | |
CN103914483B (zh) | 文件存储方法、装置及文件读取方法、装置 | |
CN102622434B (zh) | 数据存储方法、查找方法及装置 | |
CN103970870A (zh) | 数据库查询方法和服务器 | |
CN105550270B (zh) | 数据库查询方法和装置 | |
CN106326243B (zh) | 一种数据处理方法及装置 | |
CN105354256A (zh) | 一种数据分页查询的方法及装置 | |
CN105589864A (zh) | 数据查询方法及装置 | |
CN105303437A (zh) | 对账的处理方法及装置 | |
CN104008199B (zh) | 一种数据查询方法 | |
CN101661484A (zh) | 一种查询方法及*** | |
CN102629234A (zh) | 一种单片机片内置Flash数据快速检索方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |