CN100416568C - 一种加速数据库查询速度的方法 - Google Patents

一种加速数据库查询速度的方法 Download PDF

Info

Publication number
CN100416568C
CN100416568C CNB2006100415486A CN200610041548A CN100416568C CN 100416568 C CN100416568 C CN 100416568C CN B2006100415486 A CNB2006100415486 A CN B2006100415486A CN 200610041548 A CN200610041548 A CN 200610041548A CN 100416568 C CN100416568 C CN 100416568C
Authority
CN
China
Prior art keywords
data
record
database
shared drive
index
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.)
Expired - Fee Related
Application number
CNB2006100415486A
Other languages
English (en)
Other versions
CN1924853A (zh
Inventor
肖正沧
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTEsoft Technology Co Ltd
Original Assignee
ZTEsoft Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ZTEsoft Technology Co Ltd filed Critical ZTEsoft Technology Co Ltd
Priority to CNB2006100415486A priority Critical patent/CN100416568C/zh
Publication of CN1924853A publication Critical patent/CN1924853A/zh
Application granted granted Critical
Publication of CN100416568C publication Critical patent/CN100416568C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明针对现有的电信计费系统数据查询速度较慢,对数据库性能依赖性大的问题,公开了一种加速数据库查询速度的方法,它通过在系统内存中开辟用于存放数据和数据索引的共享内存段,由守护进程按约定的方式将数据库中的数据和数据索引分别调入相应的共享内存段中供业务进程调用,同时由守护进程定时或循环对数据库中的记录进行查询,及时将更新的数据内容记录到上述共享内存段中。在不增加硬件投资的前提下,可有效地提高数据库的查询速度,减少对数据库性能的依赖。

Description

一种加速数据库查询速度的方法
技术领域
本发明涉及一种电信计费系统的数据库技术,具体地说是一种加速数据库查询速度的方法。
背景技术
目前,计费系统中各种业务程序需要对数据库中的数据进行频繁的查询操作,涉及的数据量非常巨大,访问数据库的频率很高,由此产生过多的数据库交互导致程序性能降低。使用共享内存技术将数据库待查询的数据上载到业务程序所在的系统内存中,结合业务需求建立快速有效的查询方式,提高查询速度,减少对数据库性能的依赖。
发明内容
本发明的目的是针对现有的电信计费系统数据查询速度较慢,对数据库性能依赖性大的问题,提供一种加速数据库查询速度的方法。
本发明的技术方案是:
一种加速数据库查询速度的方法,其特征是在系统内存中开辟用于存放数据和数据索引的共享内存段,由守护进程按约定的方式将数据库中的数据和数据索引分别调入相应的共享内存段中供业务进程调用,同时由守护进程定时或循环对数据库中的记录进行查询,及时将更新的数据内容记录到上述共享内存段中;所述的约定的方式是指守护进程根据业务查询需求的内容,获取数据库中对应的数据,形成逻辑表的记录;同时根据业务查询的要求,对逻辑表的记录建立索引和对应的查询方法;根据业务实际数据量建立对应大小的共享内存,最终将逻辑表的数据和索引以数组方式调入到共享内存中进行管理。
所述的守护进程根据业务查询需求的内容,获取数据库中对应的数据,经过处理后形成逻辑表的记录用以上载;同时根据业务查询的要求,对逻辑表的记录建立索引和对应的查询方法;根据业务实际数据量建立对应大小的共享内存,将逻辑表的数据和索引以数组方式上载到共享内存中并进行管理。
在循环对数据库中的记录进行查询的过程中,业务进程连接指定的共享内存,根据系统提供的查询方法获取需要的数据,拷贝到进程内部内存进行操作,并限制修改共享内存中的数据。
所述的守护进程定时或者循环查询数据库记录修改时间,或者修改记查询已经被修改的记录,完成内存数据库数据记录在共享内存的同步更新。
本发明的有益效果:
1、本发明在不增加硬件投资的前提下,可有效地提高数据库的查询速度。
2、本发明通过使用共享内存技术将数据库待查询的数据上载到业务程序所在的系统内存中,结合业务需求建立快速有效的查询方式,提高了查询速度,减少了对数据库性能的依赖。
附图说明
图1是本发明的原理示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的说明。
图1所示。
一种加速数据库查询速度的方法,在系统内存中开辟用于存放数据和数据索引的共享内存段,由守护进程按约定的方式将数据库中的数据和数据索引分别调入相应的共享内存段中供业务进程调用,同时由守护进程定时或循环对数据库中的记录进行查询,及时将更新的数据内容记录到上述共享内存段中。
在上载数据的过程中,所述的守护进程可根据业务查询需求的内容,获取数据库中对应的数据,经过处理后形成逻辑表的记录用以上载;同时根据业务查询的要求,对逻辑表的记录建立索引和对应的查询方法;根据业务实际数据量建立对应大小的共享内存,将逻辑表的数据和索引以数组方式上载到共享内存中并进行管理。
在查询数据过程中,业务进程连接指定的共享内存,根据系统提供的查询方法获取需要的数据,拷贝到进程内部内存进行操作,并限制修改共享内存中的数据。
维护数据过程中,守护进程通过设定的查询方式获取数据库中更新过的数据记录,采用与上载数据类似方法更新共享内存中的数据,完成数据同步。
本发明可根据需要查询的数据量,首先在系统内存中开辟足够的共享内存段,用于存放数据记录。同时根据数据查询的需求建立对应的查询方式(即建立索引),创建立对应的共享内存段,用于存放索引及辅助维护数据。系统框架如图1。详述如下
总体流程:
守护进程根据预先定义,查询并获取数据库中的原始数据,经过处理形成需要存放的记录并插入共享内存的数据段,同时根据查询方式形成对应的索引记录,插入共享内存的索引段。在数据被批量上载后,业务进程可以连接共享内存,先访问索引段,然后获取对应的数据记录。数据库数据发生变动时,守护进程根据相应的机制获取变动的资料,依照前面业务进程查询数据的方法,如果找到指定数据就更新,如果没有找到就插入新记录。
共享内存:
首先建立一个共享内存管理区,用于存放相关数据段和索引段的管理信息。每个数据段和索引段都是不同的共享内存段,它们之间的逻辑关系存放在管理区。同时管理区还需要保存每个段的相关信息比如段的大小,段的系统标识,创建时间,更新时间,存放的记录数,记录大小。
索引:
根据各个业务进程查询的需要,以及业务数据本身的特点,采用散列方法生成索引。将数据库各表的数据根据业务要求结合,对应生成各种逻辑表,逻辑表的数据记录就是需要存放在共享内存的数据记录,通过数据库查询SQL获得这些记录后按照数组的方式存放数据。同时根据每个数据记录的逻辑建立散列索引。索引记录存放位址是根据对应数据记录的逻辑索引散列获取,索引记录的内容是对应数据记录的存放信息,段落号和段内偏移位置。对同一个逻辑表可能存在不同的索引,及对一个数据记录存在多个索引记录用来保存其地址信息。业务进程和守护进程需要使用统一的建立索引的方法。
数据维护:
系统的目标是提供快捷的查询途径,所以本系统的数据更新只涉及根据数据库记录的增加和修改,数据的删除不在系统功能范围内。守护进程定时或者循环查询数据库记录修改时间,或者修改记录查询已经被修改的记录,完成内存数据库数据记录在共享内存的同步更新(根据系统和数据量影响会产生一定的更新时间差)。共享内存的数据有守护进程负责修改,其它的访问进程只能查询,因此可以保证在某个时刻业务逻辑的完整性。
下面以一个具体的实施对本发明的加速数据库查询的方法作一步的说明:
例如数据库中的订户表 SUBS,包含字段有ID,PREFIX,ACC_NBR,ACCT_ID,CUST_ID,USER_ID,AGENT_ID,PRICE_PLAN_ID,BONUS_AMOUNT,UPDATE_DATE等字段。其中部分字段是在计费业务中是必不可少的,当守护进程准备将该表的数据上载到共享内存前,会根据业务需求将对应的CUST_ID,USER_ID,AGENT_ID字段舍去,同时根据业务进程查询数据的查询条件,对PREFIX和ACC_NBR,ACCT_ID,ID建立对应的索引,并提供对应的查询方法。其中ID是主键,是内存中数据唯一的标识,这个是必须存在的,用于更新和插入数据的。
当守护进程上载完数据到共享内存中后,定时进行维护更新操作。当数据库中表SUBS有记录修改后,需要有机制可以记录被修改记录的主键标识。守护进程根据被修改记录的主键标识,通过ID索引查询对应的数据,如果存在则更新共享内存中的数据,如果不存在,则新建一个记录在共享内存中。如果修改的字段中包含了作为索引的字段,如PREFIX,ACC_NBR,ACCT_ID则守护进程需要更新修改记录对应的索引信息。
业务进程根据需要查询共享内存数据时,比如根据PREFIX和ACC_NBR(号码前缀和号码)进行记录查找,只需知道对应的PREFIX和ACC_NBR对应的数值,使用对应的查询方法,就可以获取数据。

Claims (4)

1. 一种加速数据库查询速度的方法,其特征是在系统内存中开辟用于存放数据和数据索引的共享内存段,由守护进程按约定的方式将数据库中的数据和数据索引分别调入相应的共享内存段中供业务进程调用,同时由守护进程定时或循环对数据库中的记录进行查询,及时将更新的数据内容记录到上述共享内存段中;所述的约定的方式是指守护进程根据业务查询需求的内容,获取数据库中对应的数据,形成逻辑表的记录;同时根据业务查询的要求,对逻辑表的记录建立索引和对应的查询方法;根据业务实际数据量建立对应大小的共享内存,最终将逻辑表的数据和索引以数组方式调入到共享内存中进行管理。
2. 根据权利要求1所述的加速数据库查询速度的方法,其特征是所述的守护进程根据业务查询需求的内容,获取数据库中对应的数据,经过处理后形成逻辑表的记录用以上载;同时根据业务查询的要求,对逻辑表的记录建立索引和对应的查询方法;根据业务实际数据量建立对应大小的共享内存,将逻辑表的数据和索引以数组方式上载到共享内存中并进行管理。
3. 根据权利要求1所述的加速数据库查询速度的方法,其特征是在循环对数据库中的记录进行查询的过程中,业务进程连接指定的共享内存,根据系统提供的查询方法获取需要的数据,拷贝到进程内部内存进行操作,并限制修改共享内存中的数据。
4. 根据权利要求1所述的加速数据库查询速度的方法,其特征是所述的守护进程定时或者循环查询数据库记录修改时间,或者修改记录查询已经被修改的记录,完成内存数据库数据记录在共享内存的同步更新。
CNB2006100415486A 2006-09-14 2006-09-14 一种加速数据库查询速度的方法 Expired - Fee Related CN100416568C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2006100415486A CN100416568C (zh) 2006-09-14 2006-09-14 一种加速数据库查询速度的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2006100415486A CN100416568C (zh) 2006-09-14 2006-09-14 一种加速数据库查询速度的方法

Publications (2)

Publication Number Publication Date
CN1924853A CN1924853A (zh) 2007-03-07
CN100416568C true CN100416568C (zh) 2008-09-03

Family

ID=37817494

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006100415486A Expired - Fee Related CN100416568C (zh) 2006-09-14 2006-09-14 一种加速数据库查询速度的方法

Country Status (1)

Country Link
CN (1) CN100416568C (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101901250A (zh) * 2010-06-08 2010-12-01 中兴通讯股份有限公司 一种内存数据库及其数据处理方法
CN101957849A (zh) * 2010-09-21 2011-01-26 用友软件股份有限公司 静态报表生成方法和装置
CN102024051B (zh) * 2010-12-17 2012-12-05 北京世纪互联工程技术服务有限公司 分布式内存数据库数据更新方法
CN102323942B (zh) * 2011-09-01 2013-04-10 北京中创信测科技股份有限公司 一种统计查询方法
CN102420814A (zh) * 2011-11-21 2012-04-18 航天科工深圳(集团)有限公司 一种数据访问方法、装置及服务器
CN102929935B (zh) * 2012-09-25 2016-01-13 上海证券交易所 一种基于事务的大容量数据读写方法
CN102981829B (zh) * 2012-11-01 2015-10-21 宁波电业局 一种基于停电管理系统的图形数据展现方法及装置
CN103870511B (zh) * 2012-12-18 2017-11-03 中国银联股份有限公司 基于共享内存的信息查询设备及方法
CN103500206A (zh) * 2013-09-29 2014-01-08 北京华胜天成科技股份有限公司 基于文件存储数据的存储方法及装置
CN104636260B (zh) * 2013-11-06 2018-03-06 深圳市风景智联科技有限公司 一种用于计费业务的数据管理方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030028552A1 (en) * 2001-08-02 2003-02-06 Pierce David Mark System and method for a shared memory architecture for high speed logging and trending
CN1581161A (zh) * 2003-08-13 2005-02-16 华为技术有限公司 一种实现对数据库快速访问的方法
CN1740978A (zh) * 2004-08-23 2006-03-01 华为技术有限公司 实现共享内存数据库的方法及内存数据库系统
US20060161539A1 (en) * 2004-12-15 2006-07-20 Masaaki Narita Method and system of database management with shared area

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030028552A1 (en) * 2001-08-02 2003-02-06 Pierce David Mark System and method for a shared memory architecture for high speed logging and trending
CN1581161A (zh) * 2003-08-13 2005-02-16 华为技术有限公司 一种实现对数据库快速访问的方法
CN1740978A (zh) * 2004-08-23 2006-03-01 华为技术有限公司 实现共享内存数据库的方法及内存数据库系统
US20060161539A1 (en) * 2004-12-15 2006-07-20 Masaaki Narita Method and system of database management with shared area

Also Published As

Publication number Publication date
CN1924853A (zh) 2007-03-07

Similar Documents

Publication Publication Date Title
CN100416568C (zh) 一种加速数据库查询速度的方法
CN100353325C (zh) 实现共享内存数据库的方法及内存数据库系统
CN100472539C (zh) 基于缓存技术的数据库访问接口方法
CN102521406B (zh) 海量结构化数据复杂查询任务的分布式查询方法和系统
CN102521405B (zh) 支持高速加载的海量结构化数据存储、查询方法和系统
KR101069350B1 (ko) 클라이언트/서버 환경에서 동기화를 용이하게 하는 방법 및 컴퓨터 판독 가능 기록 매체
CN106777225A (zh) 一种数据的迁移方法和系统
CN100574281C (zh) 一种交换机路由表的管理方法
US6859808B1 (en) Mapping logical row identifiers for primary B+tree-like structures to physical row identifiers
CN105930387A (zh) 一种基于数据路由、分库分表的数据操作系统及方法
CN104156396A (zh) 大数据环境下提高数据库性能的方法及系统
CN101093482A (zh) 一种大量信息存储和检索的方法
CN101145158A (zh) 一种数据库表分区的方法
CN102629269A (zh) 一种嵌入式数据库的检索及存储方法
CN101256579A (zh) 一种数据库范围查询数据组织的方法
US20110153580A1 (en) Index Page Split Avoidance With Mass Insert Processing
CN109690522A (zh) 一种基于b+树索引的数据更新方法、装置及存储装置
CN101587484A (zh) 一种基于T-lt树的主存数据库的索引方法
CN109189798A (zh) 一种基于spark同步更新数据的方法
CN107220287A (zh) 用于日志查询的索引管理方法、装置、存储介质及设备
CN103399915A (zh) 一种搜索引擎索引文件的优化读取方法
US7200625B2 (en) System and method to enhance availability of a relational database
CN106649530B (zh) 云详单查询管理系统及方法
CN109213760B (zh) 非关系数据存储的高负载业务存储及检索方法
CN109815244A (zh) 一种数据处理方法和装置

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
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080903

Termination date: 20091014