CN112463837A - 一种关系型数据库数据存储查询方法 - Google Patents
一种关系型数据库数据存储查询方法 Download PDFInfo
- Publication number
- CN112463837A CN112463837A CN202011495009.6A CN202011495009A CN112463837A CN 112463837 A CN112463837 A CN 112463837A CN 202011495009 A CN202011495009 A CN 202011495009A CN 112463837 A CN112463837 A CN 112463837A
- Authority
- CN
- China
- Prior art keywords
- data
- key
- query
- hbase
- redis
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种关系型数据库数据存储查询方法,涉及数据处理技术领域。所述方法包括存储步骤和查询步骤,将关系数据表中需要经常检索的字段数据保存到hbase上,将关系表数据的主键作为hbase的key来保存,同时在查询过程中在redis里缓存条件查询数据;检索过程中通过检索hbase表中的数据,得到key,即关系表中的主键,再通过主键去获取关系表中的数据,从而达到提高数据实时检索速度与系统性能的效果。
Description
技术领域
本发明涉及数据处理技术领域,更具体的说是涉及一种关系型数据库数据存储查询方法。
背景技术
目前的关系数据表的实时数据查询中,为提高数据检索速度,传统解决方法一般是在关系型数据表中建立索引或者联合索引进行数据查询,从而保证了提供大部分的实时查询应用。
虽然理论上通过创建索引可以加快数据的检索速度,提高系统的查询性能,但是索引字段的类型也会也影响查询性能,int性能最好,字符类型的索引查询性能略差,并且随着表存储量增加,当存储超过百万级别的数据量时,查询效率明显降低。此外创建索引和维护索引不仅需要占用物理空间和逻辑空间,而且动态维护索引的过程需要耗费时间,而这个时间是随着数据量的增加而增加的。因此在海量数据表中通过创建索引的方式反而会降低数据的检索速度与系统性能。
发明内容
本发明的目的在于提供一种关系型数据库数据存储查询方法,以期解决背景技术中的问题。该专利针对的是在关系数据表海量数据中,数据实时检索速度低,查询性能差的问题。造成该问题的技术实质是关系型数据表是行式存储,行式存储在获取一行数据时会很高效,但是系统需要根据某列进行数据检索时,那么行式存储会取出一行行的数据,再根据检索字段与所取出的数据进行逐行比较,该比较过程不仅会导致大量的内存占用,而且所耗费的时间随着数据量的增加而逐渐增加,从而降低检索速度与系统的查询性能。
为了实现上述目的,本发明采用以下技术方案:
一种关系型数据库数据存储查询方法,所述方法包括存储步骤和查询步骤如下:
存储步骤:
步骤1:在关系型数据表中新增数据并返回主键ID。
步骤2:将需要查询的字段的相关数据保存到hbase上,将数据的主键ID作为hbase的key来保存。
步骤3:清空redis缓存的查询模块数据。
步骤4:若编辑关系型数据表中的数据,则获取主键ID后,依次执行步骤5、步骤2、步骤3、步骤6。
步骤5:在hbase库根据key(主键ID)删除对应的数据。
步骤6:在redis的数据缓存模块,根据主键ID,删除对应的缓存数据。
查询步骤:
步骤7:获取查询字段数据,将查询字段作为key,在redis的缓存查询模块获取对应的value值。若未获取到相关的查询条件数据,则执行步骤8。否则执行步骤9。
步骤8:根据查询字段数据,查询hbase数据表,返回查询所得的key,即主键ID集合;并将查询字段作为key,hbase的key(主键ID集合)作为value来保存在redis的set结构中。
步骤9:根据获取到的hbase对应的key(主键ID集合),再在redis的数据缓存模块中根据主键ID获取相关数据。若获取到数据,则本次数据查询结束;若未获取到相关数据,则执行步骤10。
步骤10:根据主键ID查询关系型表中数据,然后将主键ID作为key,对应数据作为value存储在redis的数据缓存模块,设置缓存时长为T。
进一步地技术方案,步骤2中所述的将需要查询的字段数据保存到hbase上,利用hbase的高性能、面向列存储的特性,方便在查询步骤中快速查询到关系表中对应的主键ID数据。
进一步地技术方案,步骤4所述的若编辑关系型数据表中的数据,则需要同步更新hbase表中对应的相关数据。而hbase数据表没有数据更新操作,因此需要先删除旧数据,再在hbase中增加新数据。此外由于数据更新,需要清空在redies中的查询条件模块数据和删除主键ID对应的数据缓存模块数据,以此保证查询条件的准确性与缓存数据的正确性。
进一步地技术方案,步骤7所述的在redis的缓存查询模块根据查询字段数据key获取get结构中的value值,该value值则是hbase的key,也是关系型数据表中的主键ID。通过将查询字段与主键ID的一一对应缓存,则减少了在hbase中进行海量查询的步骤,节省了查询时间,从而提高检索速度。
进一步地技术方案,步骤8所述根据查询字段检索hbase中的列数据,获取对应的key即关系型表的主键ID,然后再将key与减速字段以key-value的形式保存在redis的set结构中,可以减少下次同样的查询过程,提高检索速度。
进一步地技术方案,步骤9所述获取到主键ID之后,直接在redis的数据缓存模块,以主键ID作为key,在redis的get结构中获取关系型数据表中对应的行数据。若能获取到相关数据,则减少了一次在关系型数据中查询的过程,从而提升检索速度。
进一步地技术方案,步骤10所述根据主键ID直接在关系型数据中查询对应的行数据。关系型数据是行存储式结构,通过每行的主键ID可以直接获取到具体的某一条数据,不用扫描全表查询。因此通过主键ID获取行数据可以减少扫描数据的过程,节省查询时间,从而提高检索速度。此外在获取到主键ID对应的行数据时,再以key-value的结构将数据将相关数据在redis的数据缓存模块T时长(T时长之后,缓存数据自动销毁,避免同一数据长时间占用内存,消耗系统性能),方便下次直接根据主键ID获取数据,减少数据库查询次数,从而提高检索速度。
本发明与现有技术相比具有的有益效果是:
本发明结合Hbase的海量查询和Redis分布式缓存的快速查询与数据缓存,同时对信息结构进行有效的组织存放,在拥有海量存储的关系型数据中,提高了检索速度,保证了实时查询的性能。该专利所独有的技术特征是引入了hbase数据表保存关系表中的检索字段。而hbase数据库是列式存储且适合存储pb级别海量数据,能在几十到百毫秒内返回数据,因此通过hbase存储检索字段,可以解决海量数据实时检索速度低的问题。
附图说明
图1为本发明的一种关系型数据库数据存储查询方法的数据存储步骤的流程图;
图2为本发明的一种关系型数据库数据存储查询方法的数据查询步骤的流程图;
具体实施方式
下面结合实施例对本发明作进一步的描述,所描述的实施例仅仅是本发明一部分实施例,并不是全部的实施例。基于本发明中的实施例,本领域的普通技术人员在没有做出创造性劳动前提下所获得的其他所用实施例,都属于本发明的保护范围。
实施例1:
下面将结合附图,对本发明的技术方案进行完整的描述。
一种关系型数据库数据存储查询方法,包括如下数据存储和数据查询步骤:
如附图1示,数据存储步骤:
1)在关系型数据表中根据表字段新增一条数据记录Record1,然后返回主键ID值K1。
2)提前设定好需要查询的字段SFeild,然后将Record1数据中需要查询的字段SFeild的相关数据SFeildData保存到hbase上,将步骤1中返回的主键ID值K1作为hbase的key来保存。
3)清空redis条件查询模块的缓存数据。由于新增的数据主键ID值K1必然不在任意一条条件缓存数据中,若不清空条件缓存模块数据,则同一查询条件缓存数据所包括的主键ID值必然不完整,由此会造成查询结果不准确。
4)编辑关系型数据表中的数据Record1,挡编辑完成后,根据主键ID值K1依次执行步骤5、步骤2、步骤3、步骤6。
5)在hbase库根据key(K1)删除对应的数据SFeildData。由于hbase库只能新增不能编辑的特性,因此只能删除已存在的K1数据。
6)在redis的数据缓存模块,根据主键ID值K1,删除对应的缓存数据。由于在数据检索阶段,从关系型数据表中获取到主键K1对应的数据后,会在redis的数据缓存模块,以K1为key,K1对应的数据作为value缓存糙redis的set结构中,因此当关系型数据表中数据更新时,需要删除该缓存数据。
如附图2示,数据查询步骤:
7)获取查询字段SFeild的查询数据SearchData,将查询字段数据SearchData作为key,在redis的缓存查询模块获取对应的value值,即类似的K1值。若未获取到相关的查询条件数据SFeildData,则执行步骤8,否则执行步骤9。
8)根据查询字段数据SearchData,查询hbase数据表,返回查询所得的key,即主键ID值K1;并将查询字段数据SearchData作为key,hbase的key(主键ID值K1)作为value来保存在redis的set结构中。
9)根据获取到的hbase对应的key(主键ID),再在redis的数据缓存模块中根据K1获取相关数据。若获取到数据,则本次数据查询结束;若未获取到相关数据,则执行步骤10。
10)根据K1查询关系型表中数据,然后将主键ID作为key,对应数据Record1作为value存储在redis的数据缓存模块,设置缓存时长为T。
以上所述仅为本发明较佳实例而已,本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。
Claims (6)
1.一种关系型数据库数据存储查询方法,其特征在于,包括存储步骤和查询步骤如下:
存储步骤:
步骤1:在关系型数据表中新增数据并返回主键ID;
步骤2:将需要查询的字段的相关数据保存到hbase数据表,将数据的主键ID作为hbase的key来保存;
步骤3:清空redis缓存的查询模块数据;
步骤4:若编辑关系型数据表中的数据,则获取主键ID后,依次执行步骤5、步骤2、步骤3、步骤6;
步骤5:在hbase库根据key删除对应的数据;
步骤6:在redis的数据缓存模块,根据主键ID,删除对应的缓存数据;
查询步骤:
步骤7:获取查询字段数据,将查询字段作为key,在redis的缓存查询模块获取对应的value值;若未获取到相关的查询条件数据,则执行步骤8;否则执行步骤9;
步骤8:根据查询字段数据,查询hbase数据表,返回查询所得的key,即主键ID集合;并将查询字段作为key,hbase的key作为value来保存在redis的set结构中;
步骤9:根据获取到的hbase对应的key,再在redis的数据缓存模块中根据主键ID获取相关数据;若获取到数据,则本次数据查询结束;若未获取到相关数据,则执行步骤10;
步骤10:根据主键ID查询关系型数据表中数据,然后将主键ID作为key,对应数据作为value存储在redis的数据缓存模块,设置缓存时长为T。
2.根据权利要求1所述的一种关系型数据库数据存储查询方法,其特征在于,所述步骤4的若编辑关系型数据表中的数据,则需要同步更新hbase表中对应的相关数据。
3.根据权利要求1所述的一种关系型数据库数据存储查询方法,其特征在于,步骤7所述的value值是hbase的key,也是关系型数据表中的主键ID。
4.根据权利要求1所述的一种关系型数据库数据存储查询方法,其特征在于,所述步骤8中,hbase的key作为value来保存在redis的set结构中,具体包括:将key与减速字段以key-value的形式保存在redis的set结构中。
5.根据权利要求1所述的一种关系型数据库数据存储查询方法,其特征在于,所述步骤10中,所述关系型数据表是行存储式结构,通过每行的主键ID可以直接获取到具体的某一条数据,不用扫描全表查询。
6.根据权利要求1所述的一种关系型数据库数据存储查询方法,其特征在于,所述步骤10中,T时长之后,存储在redis的数据缓存模块内的数据自动销毁。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011495009.6A CN112463837B (zh) | 2020-12-17 | 2020-12-17 | 一种关系型数据库数据存储查询方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011495009.6A CN112463837B (zh) | 2020-12-17 | 2020-12-17 | 一种关系型数据库数据存储查询方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112463837A true CN112463837A (zh) | 2021-03-09 |
CN112463837B CN112463837B (zh) | 2022-08-16 |
Family
ID=74802922
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011495009.6A Active CN112463837B (zh) | 2020-12-17 | 2020-12-17 | 一种关系型数据库数据存储查询方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112463837B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115712653A (zh) * | 2022-12-06 | 2023-02-24 | 北京香哈网络股份有限公司 | 一种针对关系型数据库的数据缓存方法及系统 |
Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101149738A (zh) * | 2007-06-06 | 2008-03-26 | 中兴通讯股份有限公司 | 一种利用定长字段优化迭代查询的方法 |
CN104376053A (zh) * | 2014-11-04 | 2015-02-25 | 南京信息工程大学 | 一种基于海量气象数据的存储与检索方法 |
CN104391946A (zh) * | 2014-11-25 | 2015-03-04 | 安磊 | 一种mis中模糊查询方法 |
CN104699718A (zh) * | 2013-12-10 | 2015-06-10 | 阿里巴巴集团控股有限公司 | 用于快速引入业务数据的方法和装置 |
CN105357311A (zh) * | 2015-11-23 | 2016-02-24 | 中国南方电网有限责任公司 | 一种云计算技术的二次设备大数据存储与处理方法 |
US20160055233A1 (en) * | 2014-08-25 | 2016-02-25 | Ca, Inc. | Pre-join tags for entity-relationship modeling of databases |
CN106055908A (zh) * | 2016-06-13 | 2016-10-26 | 武汉理工大学 | 基于云计算的个人医疗信息推荐方法及系统 |
CN106649641A (zh) * | 2016-12-08 | 2017-05-10 | 北京五八信息技术有限公司 | 一种对数据库对象集合schema信息的处理方法、装置及管理系统 |
CN106708993A (zh) * | 2016-12-16 | 2017-05-24 | 武汉中地数码科技有限公司 | 基于大数据技术的空间数据存储处理中间件框架实现方法 |
CN108053863A (zh) * | 2017-12-22 | 2018-05-18 | 中国人民解放军第三军医大学第附属医院 | 适合大小文件的海量医疗数据存储系统及数据存储方法 |
CN108170815A (zh) * | 2017-12-29 | 2018-06-15 | 中国银联股份有限公司 | 一种数据处理方法、装置及存储介质 |
CN108170753A (zh) * | 2017-12-22 | 2018-06-15 | 北京工业大学 | 一种共有云中Key-Value数据库加密与安全查询的方法 |
CN109101635A (zh) * | 2018-08-16 | 2018-12-28 | 广州小鹏汽车科技有限公司 | 一种基于Redis Hash结构的数据处理方法及装置 |
CN109102588A (zh) * | 2018-08-20 | 2018-12-28 | 深圳市元征科技股份有限公司 | 汽车诊断数据查询方法及装置 |
CN109656929A (zh) * | 2018-12-25 | 2019-04-19 | 四川效率源信息安全技术股份有限公司 | 一种雕复关系型数据库文件的方法及装置 |
CN110399397A (zh) * | 2018-04-19 | 2019-11-01 | 北京京东尚科信息技术有限公司 | 一种数据查询方法和系统 |
CN111367954A (zh) * | 2018-12-26 | 2020-07-03 | 中兴通讯股份有限公司 | 数据查询处理方法、装置及系统、计算机可读存储介质 |
CN111459980A (zh) * | 2019-01-21 | 2020-07-28 | 北京京东尚科信息技术有限公司 | 监控数据的存储和查询方法及装置 |
-
2020
- 2020-12-17 CN CN202011495009.6A patent/CN112463837B/zh active Active
Patent Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101149738A (zh) * | 2007-06-06 | 2008-03-26 | 中兴通讯股份有限公司 | 一种利用定长字段优化迭代查询的方法 |
CN104699718A (zh) * | 2013-12-10 | 2015-06-10 | 阿里巴巴集团控股有限公司 | 用于快速引入业务数据的方法和装置 |
US20160055233A1 (en) * | 2014-08-25 | 2016-02-25 | Ca, Inc. | Pre-join tags for entity-relationship modeling of databases |
CN104376053A (zh) * | 2014-11-04 | 2015-02-25 | 南京信息工程大学 | 一种基于海量气象数据的存储与检索方法 |
CN104391946A (zh) * | 2014-11-25 | 2015-03-04 | 安磊 | 一种mis中模糊查询方法 |
CN105357311A (zh) * | 2015-11-23 | 2016-02-24 | 中国南方电网有限责任公司 | 一种云计算技术的二次设备大数据存储与处理方法 |
CN106055908A (zh) * | 2016-06-13 | 2016-10-26 | 武汉理工大学 | 基于云计算的个人医疗信息推荐方法及系统 |
CN106649641A (zh) * | 2016-12-08 | 2017-05-10 | 北京五八信息技术有限公司 | 一种对数据库对象集合schema信息的处理方法、装置及管理系统 |
CN106708993A (zh) * | 2016-12-16 | 2017-05-24 | 武汉中地数码科技有限公司 | 基于大数据技术的空间数据存储处理中间件框架实现方法 |
CN108053863A (zh) * | 2017-12-22 | 2018-05-18 | 中国人民解放军第三军医大学第附属医院 | 适合大小文件的海量医疗数据存储系统及数据存储方法 |
CN108170753A (zh) * | 2017-12-22 | 2018-06-15 | 北京工业大学 | 一种共有云中Key-Value数据库加密与安全查询的方法 |
CN108170815A (zh) * | 2017-12-29 | 2018-06-15 | 中国银联股份有限公司 | 一种数据处理方法、装置及存储介质 |
CN110399397A (zh) * | 2018-04-19 | 2019-11-01 | 北京京东尚科信息技术有限公司 | 一种数据查询方法和系统 |
CN109101635A (zh) * | 2018-08-16 | 2018-12-28 | 广州小鹏汽车科技有限公司 | 一种基于Redis Hash结构的数据处理方法及装置 |
CN109102588A (zh) * | 2018-08-20 | 2018-12-28 | 深圳市元征科技股份有限公司 | 汽车诊断数据查询方法及装置 |
CN109656929A (zh) * | 2018-12-25 | 2019-04-19 | 四川效率源信息安全技术股份有限公司 | 一种雕复关系型数据库文件的方法及装置 |
CN111367954A (zh) * | 2018-12-26 | 2020-07-03 | 中兴通讯股份有限公司 | 数据查询处理方法、装置及系统、计算机可读存储介质 |
CN111459980A (zh) * | 2019-01-21 | 2020-07-28 | 北京京东尚科信息技术有限公司 | 监控数据的存储和查询方法及装置 |
Non-Patent Citations (2)
Title |
---|
肖光昭: "基于SQL和NoSQL的混合存储系统的设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
葛微等: "HiBase:一种基于分层式索引的高效HBase查询技术与系统", 《计算机学报》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115712653A (zh) * | 2022-12-06 | 2023-02-24 | 北京香哈网络股份有限公司 | 一种针对关系型数据库的数据缓存方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112463837B (zh) | 2022-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102521406B (zh) | 海量结构化数据复杂查询任务的分布式查询方法和系统 | |
CN101499094B (zh) | 一种数据压缩存储并检索的方法及系统 | |
US10726016B2 (en) | In-memory column-level multi-versioned global dictionary for in-memory databases | |
CN102521405B (zh) | 支持高速加载的海量结构化数据存储、查询方法和系统 | |
CN103488704A (zh) | 一种数据存储方法及装置 | |
CN110196847A (zh) | 数据处理方法和装置、存储介质及电子装置 | |
CN103744913A (zh) | 一种基于搜索引擎技术的数据库检索方法 | |
CN103020054B (zh) | 模糊查询方法及系统 | |
CN110928882B (zh) | 一种基于改进红黑树的内存数据库索引方法及系统 | |
CN105760457A (zh) | 一种基于MongoDB的数据分页优化方法 | |
US11294816B2 (en) | Evaluating SQL expressions on dictionary encoded vectors | |
CN109299143B (zh) | 基于Redis缓存的数据互操作测试知识库的知识快速索引方法 | |
CN101256579A (zh) | 一种数据库范围查询数据组织的方法 | |
CN112632068A (zh) | 一种快速提供海量数据查询服务的解决方法 | |
CN105912696A (zh) | 一种基于对数归并的dns索引创建方法及查询方法 | |
CN112463837B (zh) | 一种关系型数据库数据存储查询方法 | |
CN118535578A (zh) | 一种基于哈希和LSM Tree的混合索引方法及键值存储系统 | |
CN113688130A (zh) | 一种内存数据库存储引擎管理方法 | |
Jensen et al. | Optimality in external memory hashing | |
CN110413724B (zh) | 一种数据检索方法和装置 | |
CN116701440A (zh) | 一种布谷鸟过滤器及数据插入、查询、删除方法 | |
CN116881243A (zh) | 基于时间序列数据特征的学习型索引方法及系统 | |
CN113626382B (zh) | 分布式文件系统中聚合对象的索引方法、系统及相关装置 | |
CN113742307B (zh) | 一种基于值日志系统的二级索引的存储和查询方法及系统 | |
CN114218277A (zh) | 一种关系数据库的高效查询方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |