專利名稱:一種實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)快速訪問的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)庫(kù)訪問技術(shù)領(lǐng)域,更確切地說(shuō)是涉及一種實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)快速訪問的方法。
背景技術(shù):
隨著科學(xué)技術(shù)的飛速發(fā)展,數(shù)據(jù)庫(kù)已經(jīng)普遍應(yīng)用于各種領(lǐng)域,對(duì)數(shù)據(jù)庫(kù)訪問速度的要求也越來(lái)越高。
以通信領(lǐng)域?yàn)槔?,現(xiàn)在人們?cè)絹?lái)越多地使用短消息進(jìn)行日常通信,短消息通信已經(jīng)成為主要的通訊手段之一。根據(jù)實(shí)際維護(hù)需要,需要將最近一段歷史時(shí)期的短消息保存在短消息數(shù)據(jù)庫(kù)中,目前的短消息數(shù)據(jù)庫(kù)只建立一張數(shù)據(jù)表,所有的短消息都保存在這張數(shù)據(jù)表中。一般來(lái)說(shuō),短消息數(shù)據(jù)庫(kù)需要至少保存三個(gè)月的歷史數(shù)據(jù),而每天都有5000萬(wàn)條甚至更多的短消息需要記錄在短消息數(shù)據(jù)庫(kù)的數(shù)據(jù)表中,因此數(shù)據(jù)表中的數(shù)據(jù)量非常大,將這么大的數(shù)據(jù)表存入數(shù)據(jù)庫(kù)非常困難。
如果用戶需要對(duì)指定用戶的短消息發(fā)送情況進(jìn)行跨天查詢,則局方維護(hù)人員需要在短消息數(shù)據(jù)庫(kù)的數(shù)據(jù)表中查詢所有的數(shù)據(jù),以找出用戶需要的話單記錄,顯然,在如此龐大的數(shù)據(jù)表中查找數(shù)據(jù)非常困難。而用戶在進(jìn)行查詢時(shí)對(duì)短消息數(shù)據(jù)庫(kù)的響應(yīng)速度要求較高,需要短消息數(shù)據(jù)庫(kù)能在較短的時(shí)間內(nèi)返回查詢結(jié)果。因此,現(xiàn)有的短消息數(shù)據(jù)庫(kù)組織方式很難滿足用戶快速獲取查詢信息的要求。
為實(shí)現(xiàn)對(duì)短消息數(shù)據(jù)庫(kù)的調(diào)優(yōu),目前業(yè)界提出了對(duì)短消息數(shù)據(jù)庫(kù)的參數(shù)進(jìn)行調(diào)整、在數(shù)據(jù)表上建立索引、使用硬件來(lái)分擔(dān)磁盤I/O等方法,但是由于短消息數(shù)據(jù)庫(kù)非常龐大,通過(guò)上述方法對(duì)短消息數(shù)據(jù)庫(kù)調(diào)優(yōu)時(shí),不能明顯地提高短消息數(shù)據(jù)庫(kù)的訪問速度。并且,在將獲取到的短消息詳細(xì)信息發(fā)送給用戶時(shí),由于所要發(fā)送的短消息詳細(xì)信息的數(shù)據(jù)量可能非常大,而用戶所在的網(wǎng)絡(luò)可能無(wú)法傳輸如此大的數(shù)據(jù),則將出現(xiàn)丟包的現(xiàn)象,即使網(wǎng)絡(luò)可以傳輸這個(gè)數(shù)據(jù)包,也會(huì)因所要傳輸?shù)亩滔⒃敿?xì)信息的數(shù)據(jù)量非常大而影響整個(gè)網(wǎng)絡(luò)中數(shù)據(jù)的傳輸。因此現(xiàn)有的短消息數(shù)據(jù)庫(kù)不能滿足短消息業(yè)務(wù)的實(shí)際需要。
綜上所述,現(xiàn)有的大數(shù)據(jù)量數(shù)據(jù)庫(kù)的訪問速度已經(jīng)不能滿足業(yè)務(wù)對(duì)數(shù)據(jù)庫(kù)快速反饋信息的要求,而現(xiàn)有的調(diào)優(yōu)方法不能大幅度提高數(shù)據(jù)庫(kù)的訪問速度。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)快速訪問的方法,使用戶能夠快速地從數(shù)據(jù)量非常大的數(shù)據(jù)庫(kù)中查找到詳細(xì)信息,以滿足實(shí)際需要。
為達(dá)到以上目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的一種實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)快速訪問的方法,該方法包括以下步驟a.根據(jù)具體查詢條件建立一個(gè)以上的數(shù)據(jù)表,并為每個(gè)數(shù)據(jù)表設(shè)置唯一的對(duì)應(yīng)于所述查詢條件的數(shù)據(jù)表標(biāo)識(shí)信息;b.將所有的數(shù)據(jù)庫(kù)信息按照所述具體查詢條件分別保存在相應(yīng)的數(shù)據(jù)表中;c.接收到包含所述查詢條件的特定值的查詢信息后,從與所述特定值對(duì)應(yīng)的數(shù)據(jù)表標(biāo)識(shí)信息所對(duì)應(yīng)的數(shù)據(jù)表中獲取符合該查詢信息的數(shù)據(jù)庫(kù)信息,并將所述數(shù)據(jù)庫(kù)信息發(fā)送給用戶。
所述步驟b中進(jìn)一步包括為每條數(shù)據(jù)庫(kù)信息設(shè)置唯一的記錄標(biāo)識(shí),并將該記錄標(biāo)識(shí)保存在相應(yīng)數(shù)據(jù)表中,并建立保存數(shù)據(jù)庫(kù)信息記錄標(biāo)識(shí)與數(shù)據(jù)表標(biāo)識(shí)信息對(duì)應(yīng)關(guān)系的內(nèi)存索引表。
所述步驟c是根據(jù)所述特定值從數(shù)據(jù)表中獲取符合該查詢信息的數(shù)據(jù)庫(kù)信息所對(duì)應(yīng)的記錄標(biāo)識(shí),并將獲取的記錄標(biāo)識(shí)組成大于等于一個(gè)的記錄標(biāo)識(shí)集,在發(fā)送信息時(shí)根據(jù)內(nèi)存索引表查詢每個(gè)記錄標(biāo)識(shí)集中記錄標(biāo)識(shí)所在的數(shù)據(jù)表,從數(shù)據(jù)表中獲取記錄標(biāo)識(shí)對(duì)應(yīng)的數(shù)據(jù)庫(kù)信息,并將每個(gè)記錄標(biāo)識(shí)集對(duì)應(yīng)的所有數(shù)據(jù)庫(kù)信息分別發(fā)送給用戶。
所述步驟c中,將記錄標(biāo)識(shí)集中所有記錄標(biāo)識(shí)對(duì)應(yīng)的信息保存在數(shù)據(jù)包中,并將該數(shù)據(jù)包發(fā)送給用戶。
該方法可以進(jìn)一步包括,在數(shù)據(jù)庫(kù)中設(shè)置與用戶及數(shù)據(jù)庫(kù)交互的數(shù)據(jù)庫(kù)管理模塊(DBDaemon),則步驟b中由DBDaemon建立保存數(shù)據(jù)庫(kù)信息記錄標(biāo)識(shí)與數(shù)據(jù)表標(biāo)識(shí)信息對(duì)應(yīng)關(guān)系的內(nèi)存索引表;所述步驟c中,由DBDaemon接收查詢信息、獲取記錄標(biāo)識(shí)并生成記錄標(biāo)識(shí)集、從內(nèi)存索引表中查詢記錄標(biāo)識(shí)所在的數(shù)據(jù)表、獲取記錄標(biāo)識(shí)對(duì)應(yīng)的數(shù)據(jù)庫(kù)信息,并將數(shù)據(jù)庫(kù)信息發(fā)送給用戶。
根據(jù)每條數(shù)據(jù)庫(kù)信息輸入數(shù)據(jù)庫(kù)的時(shí)間為每條數(shù)據(jù)庫(kù)信息設(shè)置記錄標(biāo)識(shí)。
所述步驟b中,根據(jù)網(wǎng)絡(luò)的數(shù)據(jù)傳輸量及保存在數(shù)據(jù)表中的信息的數(shù)據(jù)量設(shè)置記錄標(biāo)識(shí)集所包含的記錄標(biāo)識(shí)的個(gè)數(shù)。
所述步驟a中,根據(jù)單位時(shí)間建立數(shù)據(jù)表,所述步驟b中,將所有的數(shù)據(jù)庫(kù)信息按照單位時(shí)間分別保存在相應(yīng)的數(shù)據(jù)表中。
所述單位時(shí)間是一天。
所述數(shù)據(jù)庫(kù)是短消息數(shù)據(jù)庫(kù)。
本發(fā)明方案具有以下有益效果1)通過(guò)為數(shù)據(jù)庫(kù)設(shè)置多個(gè)數(shù)據(jù)表,將所有信息分別保存在這些數(shù)據(jù)表中,可以提高對(duì)大數(shù)據(jù)量的數(shù)據(jù)庫(kù)的查詢速度,且便于將數(shù)據(jù)表存入數(shù)據(jù)庫(kù);2)通過(guò)將獲取的記錄標(biāo)識(shí)劃分為多個(gè)記錄標(biāo)識(shí)集,使數(shù)據(jù)庫(kù)可以充分利用網(wǎng)絡(luò)的最大傳輸量來(lái)傳輸詳細(xì)信息;3)通過(guò)建立用于保存數(shù)據(jù)表與記錄標(biāo)識(shí)的對(duì)應(yīng)關(guān)系的內(nèi)存索引表,建立對(duì)整個(gè)數(shù)據(jù)庫(kù)的索引拷貝,使數(shù)據(jù)庫(kù)可以通過(guò)該內(nèi)存索引表獲取所查詢的信息所在的數(shù)據(jù)表,并實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)中所有數(shù)據(jù)表的掃描,以便快速地從數(shù)據(jù)表中獲取數(shù)據(jù)庫(kù)信息,進(jìn)一步提高了對(duì)大數(shù)據(jù)量的數(shù)據(jù)庫(kù)的查詢速度。
圖1為本發(fā)明實(shí)施例的實(shí)現(xiàn)流程圖。
具體實(shí)施例方式
下面結(jié)合附圖及具體實(shí)施例對(duì)本發(fā)明方案作進(jìn)一步詳細(xì)的說(shuō)明。
以對(duì)短消息數(shù)據(jù)庫(kù)的處理為例,參見圖1,本發(fā)明方案通過(guò)以下步驟實(shí)現(xiàn)步驟101、為短消息數(shù)據(jù)庫(kù)建立多個(gè)數(shù)據(jù)表。
為減少在獲取短消息詳細(xì)信息時(shí)對(duì)短消息數(shù)據(jù)庫(kù)掃描所需的時(shí)間,需要設(shè)置多個(gè)數(shù)據(jù)表,并為每個(gè)數(shù)據(jù)表對(duì)應(yīng)設(shè)置唯一的標(biāo)識(shí)信息,將短消息的詳細(xì)信息保存在這些表中,短消息詳細(xì)信息可以包括主被叫地址信息、提交和下發(fā)時(shí)間、移動(dòng)交換中心(MSC)地址、編碼方案和類型等,在將短消息詳細(xì)信息保存到數(shù)據(jù)表時(shí),還需要針對(duì)每條短消息設(shè)置一個(gè)唯一的記錄標(biāo)識(shí),并將該記錄標(biāo)識(shí)與短消息詳細(xì)信息一起保存在短消息數(shù)據(jù)庫(kù)中,該記錄標(biāo)識(shí)可以設(shè)置為根據(jù)短消息入庫(kù)時(shí)間順序增加。在設(shè)置數(shù)據(jù)表時(shí),可以為每天設(shè)置一個(gè)數(shù)據(jù)表,該數(shù)據(jù)表記錄當(dāng)天的所有短消息詳細(xì)信息,短消息詳細(xì)信息可以根據(jù)其提交到數(shù)據(jù)庫(kù)的時(shí)間依次存入數(shù)據(jù)表中。
步驟102、建立短消息的數(shù)據(jù)庫(kù)管理接口(DBDaemon)。
此DBDaemon接口需要建立一個(gè)內(nèi)存索引表,并將該內(nèi)存索引表保存在內(nèi)存中。該內(nèi)存索引表中保存記錄標(biāo)識(shí)與數(shù)據(jù)表的對(duì)應(yīng)關(guān)系。比如,一個(gè)數(shù)據(jù)表中包括記錄標(biāo)識(shí)為1到10的短消息,該數(shù)據(jù)表的標(biāo)識(shí)為a,則內(nèi)存索引表中保存該數(shù)據(jù)表a與記錄標(biāo)識(shí)1到10的對(duì)應(yīng)關(guān)系。
步驟103、用戶通過(guò)DBDaemon接口輸入查詢條件,DBDaemon接口根據(jù)該查詢條件獲取符合條件的所有記錄標(biāo)識(shí)。
用戶輸入的查詢條件可以包括主叫手機(jī)號(hào)碼和指定時(shí)間段等信息,如果查詢條件中包括指定時(shí)間段,則DBDaemon接口從該指定時(shí)間段所對(duì)應(yīng)的數(shù)據(jù)表中查詢到符合該查詢條件的短消息所對(duì)應(yīng)的記錄標(biāo)識(shí),比如,用戶需要查詢主叫號(hào)碼為12345的手機(jī)用戶在7月1、2、3日三天的所發(fā)送的短信息的詳細(xì)信息,則用戶將手機(jī)號(hào)和日期發(fā)送給DBDaemon接口,DBDaemon接口收到查詢信息后,從短消息數(shù)據(jù)庫(kù)中與7月1、2、3日對(duì)應(yīng)的數(shù)據(jù)表中獲取12345用戶發(fā)送的短信息對(duì)應(yīng)的記錄標(biāo)識(shí);如果查詢條件中沒有指定時(shí)間段,則DBDaemon接口需要從所有數(shù)據(jù)表中查詢到符合該查詢條件的短消息所對(duì)應(yīng)的記錄標(biāo)識(shí),比如,用戶需要查詢主叫號(hào)碼為12345的手機(jī)用戶所發(fā)送的短信息的詳細(xì)信息,則用戶將手機(jī)號(hào)發(fā)送給DBDaemon接口,DBDaemon接口從短消息數(shù)據(jù)庫(kù)所有的數(shù)據(jù)表中獲取12345用戶發(fā)送的短信息對(duì)應(yīng)的記錄標(biāo)識(shí)。
步驟104、DBDaemon根據(jù)查詢到的記錄標(biāo)識(shí)從數(shù)據(jù)庫(kù)中獲取詳細(xì)信息,并發(fā)送給用戶。
一般來(lái)說(shuō),用戶需要獲取的信息的數(shù)據(jù)量比較大,而目前的協(xié)議規(guī)定了網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù)量,因此DBDaemon可能無(wú)法直接將查詢到的所有數(shù)據(jù)發(fā)送給用戶,并且,用戶所在網(wǎng)絡(luò)允許一次發(fā)送的數(shù)據(jù)量往往比協(xié)議規(guī)定的還要小,針對(duì)這種情況,本發(fā)明方案采用DBDaemon將記錄標(biāo)識(shí)所對(duì)應(yīng)的短消息信息分多次傳輸給用戶。DBDaemon首先將在步驟103中獲取的符合用戶查詢條件的所有記錄標(biāo)識(shí)分為若干個(gè)記錄標(biāo)識(shí)集,并分別對(duì)每一個(gè)記錄標(biāo)識(shí)集進(jìn)行處理。具體來(lái)說(shuō),由于每個(gè)短消息信息的數(shù)據(jù)大小相似,因此可以根據(jù)每條短消息信息的大小及網(wǎng)絡(luò)的最大傳輸數(shù)據(jù)量,將所有的記錄標(biāo)識(shí)劃分為多個(gè)記錄標(biāo)識(shí)集,每個(gè)記錄標(biāo)識(shí)集所對(duì)應(yīng)的所有短消息詳細(xì)信息可以通過(guò)網(wǎng)絡(luò)一次傳輸出去。在對(duì)記錄標(biāo)識(shí)集進(jìn)行處理時(shí),首先根據(jù)內(nèi)存索引表判斷該記錄標(biāo)識(shí)集中每個(gè)記錄標(biāo)識(shí)所在的數(shù)據(jù)表,從該數(shù)據(jù)表中獲取短消息詳細(xì)信息,并將獲取的短消息詳細(xì)信息保存在一個(gè)數(shù)據(jù)包中。在獲取這個(gè)記錄標(biāo)識(shí)集中所有記錄標(biāo)識(shí)對(duì)應(yīng)的短消息詳細(xì)信息后,將保存這些短消息詳細(xì)信息的數(shù)據(jù)包發(fā)送給用戶。
以上僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)快速訪問的方法,其特征在于該方法包括以下步驟a.根據(jù)具體查詢條件建立一個(gè)以上的數(shù)據(jù)表,并為每個(gè)數(shù)據(jù)表設(shè)置唯一的對(duì)應(yīng)于所述查詢條件的數(shù)據(jù)表標(biāo)識(shí)信息;b.將所有的數(shù)據(jù)庫(kù)信息按照所述具體查詢條件分別保存在相應(yīng)的數(shù)據(jù)表中;c.接收到包含所述查詢條件的特定值的查詢信息后,從與所述特定值對(duì)應(yīng)的數(shù)據(jù)表標(biāo)識(shí)信息所對(duì)應(yīng)的數(shù)據(jù)表中獲取符合該查詢信息的數(shù)據(jù)庫(kù)信息,并將所述數(shù)據(jù)庫(kù)信息發(fā)送給用戶。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟b中進(jìn)一步包括為每條數(shù)據(jù)庫(kù)信息設(shè)置唯一的記錄標(biāo)識(shí),并將該記錄標(biāo)識(shí)保存在相應(yīng)數(shù)據(jù)表中,并建立保存數(shù)據(jù)庫(kù)信息記錄標(biāo)識(shí)與數(shù)據(jù)表標(biāo)識(shí)信息對(duì)應(yīng)關(guān)系的內(nèi)存索引表。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述步驟c是根據(jù)所述特定值從數(shù)據(jù)表中獲取符合該查詢信息的數(shù)據(jù)庫(kù)信息所對(duì)應(yīng)的記錄標(biāo)識(shí),并將獲取的記錄標(biāo)識(shí)組成大于等于一個(gè)的記錄標(biāo)識(shí)集,在發(fā)送信息時(shí)根據(jù)內(nèi)存索引表查詢每個(gè)記錄標(biāo)識(shí)集中記錄標(biāo)識(shí)所在的數(shù)據(jù)表,從數(shù)據(jù)表中獲取記錄標(biāo)識(shí)對(duì)應(yīng)的數(shù)據(jù)庫(kù)信息,并將每個(gè)記錄標(biāo)識(shí)集對(duì)應(yīng)的所有數(shù)據(jù)庫(kù)信息分別發(fā)送給用戶。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于所述步驟c中,將記錄標(biāo)識(shí)集中所有記錄標(biāo)識(shí)對(duì)應(yīng)的信息保存在數(shù)據(jù)包中,并將該數(shù)據(jù)包發(fā)送給用戶。
5.根據(jù)權(quán)利要求3所述的方法,其特征在于該方法進(jìn)一步包括,在數(shù)據(jù)庫(kù)中設(shè)置與用戶及數(shù)據(jù)庫(kù)交互的數(shù)據(jù)庫(kù)管理模塊(DBDaemon),則步驟b中由DBDaemon建立保存數(shù)據(jù)庫(kù)信息記錄標(biāo)識(shí)與數(shù)據(jù)表標(biāo)識(shí)信息對(duì)應(yīng)關(guān)系的內(nèi)存索引表;所述步驟c中,由DBDaemon接收查詢信息、獲取記錄標(biāo)識(shí)并生成記錄標(biāo)識(shí)集、從內(nèi)存索引表中查詢記錄標(biāo)識(shí)所在的數(shù)據(jù)表、獲取記錄標(biāo)識(shí)對(duì)應(yīng)的數(shù)據(jù)庫(kù)信息,并將數(shù)據(jù)庫(kù)信息發(fā)送給用戶。
6.根據(jù)權(quán)利要求2所述的方法,其特征在于,根據(jù)每條數(shù)據(jù)庫(kù)信息輸入數(shù)據(jù)庫(kù)的時(shí)間為每條數(shù)據(jù)庫(kù)信息設(shè)置記錄標(biāo)識(shí)。
7.根據(jù)權(quán)利要求2所述的方法,其特征在于所述步驟b中,根據(jù)網(wǎng)絡(luò)的數(shù)據(jù)傳輸量及保存在數(shù)據(jù)表中的信息的數(shù)據(jù)量設(shè)置記錄標(biāo)識(shí)集所包含的記錄標(biāo)識(shí)的個(gè)數(shù)。
8.根據(jù)權(quán)利要求1所述的方法,其特征在于所述步驟a中,根據(jù)單位時(shí)間建立數(shù)據(jù)表,所述步驟b中,將所有的數(shù)據(jù)庫(kù)信息按照單位時(shí)間分別保存在相應(yīng)的數(shù)據(jù)表中。
9.根據(jù)權(quán)利要求8所述的方法,其特征在于,所述單位時(shí)間是一天。
10.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述數(shù)據(jù)庫(kù)是短消息數(shù)據(jù)庫(kù)。
全文摘要
本發(fā)明公開了一種實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)快速訪問的方法,該方法為每條信息設(shè)置唯一的記錄標(biāo)識(shí),建立一個(gè)以上用于保存信息的數(shù)據(jù)表,并為每個(gè)數(shù)據(jù)表設(shè)置唯一的標(biāo)識(shí)信息,建立保存記錄標(biāo)識(shí)與數(shù)據(jù)表對(duì)應(yīng)關(guān)系的內(nèi)存索引表;數(shù)據(jù)庫(kù)接收到查詢信息后,從數(shù)據(jù)表中獲取與該查詢信息所對(duì)應(yīng)的信息的記錄標(biāo)識(shí),并將獲取的記錄標(biāo)識(shí)組成至少一個(gè)的記錄標(biāo)識(shí)集;根據(jù)內(nèi)存索引表查詢每個(gè)記錄標(biāo)識(shí)集中的記錄標(biāo)識(shí)所在的數(shù)據(jù)表,從數(shù)據(jù)表中獲取記錄標(biāo)識(shí)對(duì)應(yīng)的信息,并將該記錄標(biāo)識(shí)集對(duì)應(yīng)的所有信息發(fā)送給用戶。本發(fā)明解決了現(xiàn)有技術(shù)中數(shù)據(jù)庫(kù)在數(shù)據(jù)量很大時(shí)訪問速度很慢的問題,實(shí)現(xiàn)了對(duì)數(shù)據(jù)庫(kù)的快速訪問。
文檔編號(hào)G06F17/30GK1581161SQ0315328
公開日2005年2月16日 申請(qǐng)日期2003年8月13日 優(yōu)先權(quán)日2003年8月13日
發(fā)明者李孟, 王暄, 馬家明 申請(qǐng)人:華為技術(shù)有限公司