一种实现对数据库快速访问的方法

文档序号:6375479阅读:340来源:国知局
专利名称:一种实现对数据库快速访问的方法
技术领域
本发明涉及数据库访问技术领域,更确切地说是涉及一种实现对数据库快速访问的方法。
背景技术
随着科学技术的飞速发展,数据库已经普遍应用于各种领域,对数据库访问速度的要求也越来越高。
以通信领域为例,现在人们越来越多地使用短消息进行日常通信,短消息通信已经成为主要的通讯手段之一。根据实际维护需要,需要将最近一段历史时期的短消息保存在短消息数据库中,目前的短消息数据库只建立一张数据表,所有的短消息都保存在这张数据表中。一般来说,短消息数据库需要至少保存三个月的历史数据,而每天都有5000万条甚至更多的短消息需要记录在短消息数据库的数据表中,因此数据表中的数据量非常大,将这么大的数据表存入数据库非常困难。
如果用户需要对指定用户的短消息发送情况进行跨天查询,则局方维护人员需要在短消息数据库的数据表中查询所有的数据,以找出用户需要的话单记录,显然,在如此庞大的数据表中查找数据非常困难。而用户在进行查询时对短消息数据库的响应速度要求较高,需要短消息数据库能在较短的时间内返回查询结果。因此,现有的短消息数据库组织方式很难满足用户快速获取查询信息的要求。
为实现对短消息数据库的调优,目前业界提出了对短消息数据库的参数进行调整、在数据表上建立索引、使用硬件来分担磁盘I/O等方法,但是由于短消息数据库非常庞大,通过上述方法对短消息数据库调优时,不能明显地提高短消息数据库的访问速度。并且,在将获取到的短消息详细信息发送给用户时,由于所要发送的短消息详细信息的数据量可能非常大,而用户所在的网络可能无法传输如此大的数据,则将出现丢包的现象,即使网络可以传输这个数据包,也会因所要传输的短消息详细信息的数据量非常大而影响整个网络中数据的传输。因此现有的短消息数据库不能满足短消息业务的实际需要。
综上所述,现有的大数据量数据库的访问速度已经不能满足业务对数据库快速反馈信息的要求,而现有的调优方法不能大幅度提高数据库的访问速度。

发明内容
有鉴于此,本发明的主要目的在于提供一种实现对数据库快速访问的方法,使用户能够快速地从数据量非常大的数据库中查找到详细信息,以满足实际需要。
为达到以上目的,本发明的技术方案是这样实现的一种实现对数据库快速访问的方法,该方法包括以下步骤a.根据具体查询条件建立一个以上的数据表,并为每个数据表设置唯一的对应于所述查询条件的数据表标识信息;b.将所有的数据库信息按照所述具体查询条件分别保存在相应的数据表中;c.接收到包含所述查询条件的特定值的查询信息后,从与所述特定值对应的数据表标识信息所对应的数据表中获取符合该查询信息的数据库信息,并将所述数据库信息发送给用户。
所述步骤b中进一步包括为每条数据库信息设置唯一的记录标识,并将该记录标识保存在相应数据表中,并建立保存数据库信息记录标识与数据表标识信息对应关系的内存索引表。
所述步骤c是根据所述特定值从数据表中获取符合该查询信息的数据库信息所对应的记录标识,并将获取的记录标识组成大于等于一个的记录标识集,在发送信息时根据内存索引表查询每个记录标识集中记录标识所在的数据表,从数据表中获取记录标识对应的数据库信息,并将每个记录标识集对应的所有数据库信息分别发送给用户。
所述步骤c中,将记录标识集中所有记录标识对应的信息保存在数据包中,并将该数据包发送给用户。
该方法可以进一步包括,在数据库中设置与用户及数据库交互的数据库管理模块(DBDaemon),则步骤b中由DBDaemon建立保存数据库信息记录标识与数据表标识信息对应关系的内存索引表;所述步骤c中,由DBDaemon接收查询信息、获取记录标识并生成记录标识集、从内存索引表中查询记录标识所在的数据表、获取记录标识对应的数据库信息,并将数据库信息发送给用户。
根据每条数据库信息输入数据库的时间为每条数据库信息设置记录标识。
所述步骤b中,根据网络的数据传输量及保存在数据表中的信息的数据量设置记录标识集所包含的记录标识的个数。
所述步骤a中,根据单位时间建立数据表,所述步骤b中,将所有的数据库信息按照单位时间分别保存在相应的数据表中。
所述单位时间是一天。
所述数据库是短消息数据库。
本发明方案具有以下有益效果1)通过为数据库设置多个数据表,将所有信息分别保存在这些数据表中,可以提高对大数据量的数据库的查询速度,且便于将数据表存入数据库;2)通过将获取的记录标识划分为多个记录标识集,使数据库可以充分利用网络的最大传输量来传输详细信息;3)通过建立用于保存数据表与记录标识的对应关系的内存索引表,建立对整个数据库的索引拷贝,使数据库可以通过该内存索引表获取所查询的信息所在的数据表,并实现对数据库中所有数据表的扫描,以便快速地从数据表中获取数据库信息,进一步提高了对大数据量的数据库的查询速度。


图1为本发明实施例的实现流程图。
具体实施例方式
下面结合附图及具体实施例对本发明方案作进一步详细的说明。
以对短消息数据库的处理为例,参见图1,本发明方案通过以下步骤实现步骤101、为短消息数据库建立多个数据表。
为减少在获取短消息详细信息时对短消息数据库扫描所需的时间,需要设置多个数据表,并为每个数据表对应设置唯一的标识信息,将短消息的详细信息保存在这些表中,短消息详细信息可以包括主被叫地址信息、提交和下发时间、移动交换中心(MSC)地址、编码方案和类型等,在将短消息详细信息保存到数据表时,还需要针对每条短消息设置一个唯一的记录标识,并将该记录标识与短消息详细信息一起保存在短消息数据库中,该记录标识可以设置为根据短消息入库时间顺序增加。在设置数据表时,可以为每天设置一个数据表,该数据表记录当天的所有短消息详细信息,短消息详细信息可以根据其提交到数据库的时间依次存入数据表中。
步骤102、建立短消息的数据库管理接口(DBDaemon)。
此DBDaemon接口需要建立一个内存索引表,并将该内存索引表保存在内存中。该内存索引表中保存记录标识与数据表的对应关系。比如,一个数据表中包括记录标识为1到10的短消息,该数据表的标识为a,则内存索引表中保存该数据表a与记录标识1到10的对应关系。
步骤103、用户通过DBDaemon接口输入查询条件,DBDaemon接口根据该查询条件获取符合条件的所有记录标识。
用户输入的查询条件可以包括主叫手机号码和指定时间段等信息,如果查询条件中包括指定时间段,则DBDaemon接口从该指定时间段所对应的数据表中查询到符合该查询条件的短消息所对应的记录标识,比如,用户需要查询主叫号码为12345的手机用户在7月1、2、3日三天的所发送的短信息的详细信息,则用户将手机号和日期发送给DBDaemon接口,DBDaemon接口收到查询信息后,从短消息数据库中与7月1、2、3日对应的数据表中获取12345用户发送的短信息对应的记录标识;如果查询条件中没有指定时间段,则DBDaemon接口需要从所有数据表中查询到符合该查询条件的短消息所对应的记录标识,比如,用户需要查询主叫号码为12345的手机用户所发送的短信息的详细信息,则用户将手机号发送给DBDaemon接口,DBDaemon接口从短消息数据库所有的数据表中获取12345用户发送的短信息对应的记录标识。
步骤104、DBDaemon根据查询到的记录标识从数据库中获取详细信息,并发送给用户。
一般来说,用户需要获取的信息的数据量比较大,而目前的协议规定了网络中传输的数据量,因此DBDaemon可能无法直接将查询到的所有数据发送给用户,并且,用户所在网络允许一次发送的数据量往往比协议规定的还要小,针对这种情况,本发明方案采用DBDaemon将记录标识所对应的短消息信息分多次传输给用户。DBDaemon首先将在步骤103中获取的符合用户查询条件的所有记录标识分为若干个记录标识集,并分别对每一个记录标识集进行处理。具体来说,由于每个短消息信息的数据大小相似,因此可以根据每条短消息信息的大小及网络的最大传输数据量,将所有的记录标识划分为多个记录标识集,每个记录标识集所对应的所有短消息详细信息可以通过网络一次传输出去。在对记录标识集进行处理时,首先根据内存索引表判断该记录标识集中每个记录标识所在的数据表,从该数据表中获取短消息详细信息,并将获取的短消息详细信息保存在一个数据包中。在获取这个记录标识集中所有记录标识对应的短消息详细信息后,将保存这些短消息详细信息的数据包发送给用户。
以上仅为本发明的较佳实施例,并不用以限制本发明的保护范围。
权利要求
1.一种实现对数据库快速访问的方法,其特征在于该方法包括以下步骤a.根据具体查询条件建立一个以上的数据表,并为每个数据表设置唯一的对应于所述查询条件的数据表标识信息;b.将所有的数据库信息按照所述具体查询条件分别保存在相应的数据表中;c.接收到包含所述查询条件的特定值的查询信息后,从与所述特定值对应的数据表标识信息所对应的数据表中获取符合该查询信息的数据库信息,并将所述数据库信息发送给用户。
2.根据权利要求1所述的方法,其特征在于,所述步骤b中进一步包括为每条数据库信息设置唯一的记录标识,并将该记录标识保存在相应数据表中,并建立保存数据库信息记录标识与数据表标识信息对应关系的内存索引表。
3.根据权利要求2所述的方法,其特征在于,所述步骤c是根据所述特定值从数据表中获取符合该查询信息的数据库信息所对应的记录标识,并将获取的记录标识组成大于等于一个的记录标识集,在发送信息时根据内存索引表查询每个记录标识集中记录标识所在的数据表,从数据表中获取记录标识对应的数据库信息,并将每个记录标识集对应的所有数据库信息分别发送给用户。
4.根据权利要求3所述的方法,其特征在于所述步骤c中,将记录标识集中所有记录标识对应的信息保存在数据包中,并将该数据包发送给用户。
5.根据权利要求3所述的方法,其特征在于该方法进一步包括,在数据库中设置与用户及数据库交互的数据库管理模块(DBDaemon),则步骤b中由DBDaemon建立保存数据库信息记录标识与数据表标识信息对应关系的内存索引表;所述步骤c中,由DBDaemon接收查询信息、获取记录标识并生成记录标识集、从内存索引表中查询记录标识所在的数据表、获取记录标识对应的数据库信息,并将数据库信息发送给用户。
6.根据权利要求2所述的方法,其特征在于,根据每条数据库信息输入数据库的时间为每条数据库信息设置记录标识。
7.根据权利要求2所述的方法,其特征在于所述步骤b中,根据网络的数据传输量及保存在数据表中的信息的数据量设置记录标识集所包含的记录标识的个数。
8.根据权利要求1所述的方法,其特征在于所述步骤a中,根据单位时间建立数据表,所述步骤b中,将所有的数据库信息按照单位时间分别保存在相应的数据表中。
9.根据权利要求8所述的方法,其特征在于,所述单位时间是一天。
10.根据权利要求1所述的方法,其特征在于,所述数据库是短消息数据库。
全文摘要
本发明公开了一种实现对数据库快速访问的方法,该方法为每条信息设置唯一的记录标识,建立一个以上用于保存信息的数据表,并为每个数据表设置唯一的标识信息,建立保存记录标识与数据表对应关系的内存索引表;数据库接收到查询信息后,从数据表中获取与该查询信息所对应的信息的记录标识,并将获取的记录标识组成至少一个的记录标识集;根据内存索引表查询每个记录标识集中的记录标识所在的数据表,从数据表中获取记录标识对应的信息,并将该记录标识集对应的所有信息发送给用户。本发明解决了现有技术中数据库在数据量很大时访问速度很慢的问题,实现了对数据库的快速访问。
文档编号G06F17/30GK1581161SQ0315328
公开日2005年2月16日 申请日期2003年8月13日 优先权日2003年8月13日
发明者李孟, 王暄, 马家明 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1