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

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

Info

Publication number
CN1924853A
CN1924853A CN 200610041548 CN200610041548A CN1924853A CN 1924853 A CN1924853 A CN 1924853A CN 200610041548 CN200610041548 CN 200610041548 CN 200610041548 A CN200610041548 A CN 200610041548A CN 1924853 A CN1924853 A CN 1924853A
Authority
CN
China
Prior art keywords
data
database
record
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.)
Granted
Application number
CN 200610041548
Other languages
English (en)
Other versions
CN100416568C (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

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

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 true CN1924853A (zh) 2007-03-07
CN100416568C 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)

Cited By (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 用友软件股份有限公司 静态报表生成方法和装置
CN102024051A (zh) * 2010-12-17 2011-04-20 北京世纪互联工程技术服务有限公司 分布式内存数据库数据更新方法
CN102323942A (zh) * 2011-09-01 2012-01-18 北京中创信测科技股份有限公司 一种统计查询方法
CN102420814A (zh) * 2011-11-21 2012-04-18 航天科工深圳(集团)有限公司 一种数据访问方法、装置及服务器
CN102929935A (zh) * 2012-09-25 2013-02-13 上海证券交易所 一种基于事务的大容量数据读写方法
CN102981829A (zh) * 2012-11-01 2013-03-20 宁波电业局 一种基于停电管理系统的图形数据展现方法及装置
CN103500206A (zh) * 2013-09-29 2014-01-08 北京华胜天成科技股份有限公司 基于文件存储数据的存储方法及装置
CN104636260A (zh) * 2013-11-06 2015-05-20 深圳市风景智联科技有限公司 一种用于计费业务的数据管理方法及系统
CN103870511B (zh) * 2012-12-18 2017-11-03 中国银联股份有限公司 基于共享内存的信息查询设备及方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6745175B2 (en) * 2001-08-02 2004-06-01 National Instruments Corporation System and method for a shared memory architecture for high speed logging and trending
CN100371931C (zh) * 2003-08-13 2008-02-27 华为技术有限公司 一种实现对数据库快速访问的方法
CN100353325C (zh) * 2004-08-23 2007-12-05 华为技术有限公司 实现共享内存数据库的方法及内存数据库系统
JP2006172067A (ja) * 2004-12-15 2006-06-29 Hitachi Ltd データベース管理方法、システム及びプログラム

Cited By (14)

* 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 用友软件股份有限公司 静态报表生成方法和装置
CN102024051A (zh) * 2010-12-17 2011-04-20 北京世纪互联工程技术服务有限公司 分布式内存数据库数据更新方法
CN102024051B (zh) * 2010-12-17 2012-12-05 北京世纪互联工程技术服务有限公司 分布式内存数据库数据更新方法
CN102323942B (zh) * 2011-09-01 2013-04-10 北京中创信测科技股份有限公司 一种统计查询方法
CN102323942A (zh) * 2011-09-01 2012-01-18 北京中创信测科技股份有限公司 一种统计查询方法
CN102420814A (zh) * 2011-11-21 2012-04-18 航天科工深圳(集团)有限公司 一种数据访问方法、装置及服务器
CN102929935A (zh) * 2012-09-25 2013-02-13 上海证券交易所 一种基于事务的大容量数据读写方法
CN102981829A (zh) * 2012-11-01 2013-03-20 宁波电业局 一种基于停电管理系统的图形数据展现方法及装置
CN102981829B (zh) * 2012-11-01 2015-10-21 宁波电业局 一种基于停电管理系统的图形数据展现方法及装置
CN103870511B (zh) * 2012-12-18 2017-11-03 中国银联股份有限公司 基于共享内存的信息查询设备及方法
CN103500206A (zh) * 2013-09-29 2014-01-08 北京华胜天成科技股份有限公司 基于文件存储数据的存储方法及装置
CN104636260A (zh) * 2013-11-06 2015-05-20 深圳市风景智联科技有限公司 一种用于计费业务的数据管理方法及系统
CN104636260B (zh) * 2013-11-06 2018-03-06 深圳市风景智联科技有限公司 一种用于计费业务的数据管理方法及系统

Also Published As

Publication number Publication date
CN100416568C (zh) 2008-09-03

Similar Documents

Publication Publication Date Title
CN100416568C (zh) 一种加速数据库查询速度的方法
US8612488B1 (en) Efficient method for relocating shared memory
CA1319756C (en) Real-time database
CN106777225A (zh) 一种数据的迁移方法和系统
CN101110088A (zh) 基于缓存技术的数据库访问接口方法
CN105930387A (zh) 一种基于数据路由、分库分表的数据操作系统及方法
JP2003522344A (ja) データベース同期化/組織化システムおよび方法
CN101587484B (zh) 一种基于T-lt树的主存数据库的索引方法
CN102542057B (zh) 基于固态硬盘的高维数据索引结构设计方法
CN107402981A (zh) 一种基于分布式离线数据库的数据增量处理方法及系统
US20110153580A1 (en) Index Page Split Avoidance With Mass Insert Processing
CN104156396A (zh) 大数据环境下提高数据库性能的方法及系统
CN100347705C (zh) 一种合并文件的方法
CN109690522A (zh) 一种基于b+树索引的数据更新方法、装置及存储装置
CN101256579A (zh) 一种数据库范围查询数据组织的方法
CN103399915A (zh) 一种搜索引擎索引文件的优化读取方法
CN1310388A (zh) 借由增量的方式来使数据文件升级的方法
CN1614591A (zh) 一种组织和访问分布式文件系统目录的方法
CN102768672B (zh) 一种磁盘空间管理方法和装置
CN109213760B (zh) 非关系数据存储的高负载业务存储及检索方法
US20090144221A1 (en) Dynamic time-dimension-dependent physical management on diverse media of very large event-recording data-store
CN116226128A (zh) 以对象存储为冷存储的olap引擎冷热分离优化方法
CN1317662C (zh) 一种分布式文件存取方法
Zhang et al. Bi-directional Log-Structured Merge Tree
CN1430148A (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