請求數(shù)據(jù)的方法及裝置的制造方法
【技術領域】
[0001]本公開涉及數(shù)據(jù)庫技術領域,特別涉及一種請求數(shù)據(jù)的方法及裝置。
【背景技術】
[0002]隨著互聯(lián)網(wǎng)的普及以及用戶數(shù)量的快速增長,使得多媒體網(wǎng)絡服務器面對的訪問數(shù)量成倍增長,這也使得數(shù)據(jù)庫服務器面臨了巨大的壓力。
[0003]一般情況下,數(shù)據(jù)庫服務器接收到各查詢請求終端發(fā)送的查詢請求后,會為每一個查詢請求建立單獨的線程,每一個線程根據(jù)查詢請求向數(shù)據(jù)庫發(fā)送查詢請求,數(shù)據(jù)庫再根據(jù)接收到的每一個查詢請求進行查詢操作,并將查詢結果根據(jù)查詢請求返回給對應的線程,最終各個線程再將查詢結果返回給對應的查詢請求終端。
【發(fā)明內(nèi)容】
[0004]為了解決相關技術的問題,本公開實施例提供了一種請求數(shù)據(jù)的方法及裝置。所述技術方案如下:
[0005]根據(jù)本公開實施例的第一方面,提供一種請求數(shù)據(jù)的方法,包括:
[0006]獲取來自查詢請求終端的對數(shù)據(jù)庫的第一查詢請求;
[0007]檢測是否存在與所述第一查詢請求相同的查詢請求;
[0008]當存在與所述第一查詢請求相同的查詢請求時,在所述相同的查詢請求中選取一查詢請求提交給所述數(shù)據(jù)庫;
[0009]接收所述數(shù)據(jù)庫返回的查詢結果,并將所述查詢結果返回給所述查詢請求終端。
[0010]可選的,所述檢測是否存在與所述第一查詢請求相同的查詢請求,包括:
[0011]根據(jù)所述第一查詢請求中的鏈接地址和請求參數(shù),確定是否存在與所述第一查詢請求相同的查詢請求。
[0012]可選的,所述在所述相同的查詢請求中選取一查詢請求提交給所述數(shù)據(jù)庫,包括:
[0013]在所述相同的查詢請求中選取請求時間最早的一個查詢請求提交給所述數(shù)據(jù)庫。
[0014]可選的,所述在所述相同的查詢請求中選取一查詢請求提交給所述數(shù)據(jù)庫之后,所述方法還包括:
[0015]將未選取到的查詢請求設置為等待狀態(tài)。
[0016]可選的,所述將所述查詢結果返回給所述查詢請求終端,包括:
[0017]將所述查詢結果同步至所述未選取到的查詢請求;
[0018]根據(jù)所述每個查詢請求中的源地址,將所述查詢結果返回給所述每個查詢請求對應的查詢請求終端。
[0019]根據(jù)本公開實施例的第二方面,提供一種請求數(shù)據(jù)的裝置,包括:
[0020]獲取模塊,用于獲取來自查詢請求終端的對數(shù)據(jù)庫的第一查詢請求;
[0021]檢測模塊,用于檢測是否存在與所述第一查詢請求相同的查詢請求;
[0022]提交模塊,用于當存在與所述第一查詢請求相同的查詢請求時,在所述相同的查詢請求中選取一查詢請求提交給所述數(shù)據(jù)庫;
[0023]接收模塊,用于接收所述數(shù)據(jù)庫返回的查詢結果;
[0024]返回模塊,用于將所述查詢結果返回給所述查詢請求終端。
[0025]可選的,所述檢測模塊用于:
[0026]根據(jù)所述第一查詢請求中的鏈接地址和請求參數(shù),確定是否存在與所述第一查詢請求相同的查詢請求。
[0027]可選的,所述提交模塊用于:
[0028]在所述相同的查詢請求中選取請求時間最早的一個查詢請求提交給所述數(shù)據(jù)庫。
[0029]可選的,所述裝置還包括:
[0030]設置模塊,用于將未選取到的查詢請求設置為等待狀態(tài)。
[0031]可選的,所述返回模塊,包括:
[0032]同步單元,用于將所述查詢結果同步至所述未選取到的查詢請求;
[0033]返回單元,用于根據(jù)所述每個查詢請求中的源地址,將所述查詢結果返回給所述每個查詢請求對應的查詢請求終端。
[0034]根據(jù)本公開實施例的第三方面,提供一種請求數(shù)據(jù)的裝置,包括:
[0035]處理器;
[0036]用于存儲處理器可執(zhí)行指令的存儲器;
[0037]其中,所述處理器被配置為:
[0038]獲取來自查詢請求終端的對數(shù)據(jù)庫的第一查詢請求;
[0039]檢測是否存在與所述第一查詢請求相同的查詢請求;
[0040]當存在與所述第一查詢請求相同的查詢請求時,在所述相同的查詢請求中選取一查詢請求提交給所述數(shù)據(jù)庫;
[0041]接收所述數(shù)據(jù)庫返回的查詢結果,并將所述查詢結果返回給所述查詢請求終端。
[0042]本公開的實施例提供的技術方案可以包括以下有益效果:
[0043]通過獲取來自查詢請求終端的對數(shù)據(jù)庫的第一查詢請求,檢測是否存在與第一查詢請求相同的查詢請求,如果存在則選取一個查詢請求提交給數(shù)據(jù)庫,并將數(shù)據(jù)庫返回的查詢結果屬于相同的查詢請求的各數(shù)據(jù)請求中歐段。降低了數(shù)據(jù)庫的查詢次數(shù),進而降低了數(shù)據(jù)庫的系統(tǒng)消耗,相應的提高了單次查詢的響應速度,提高了數(shù)據(jù)庫服務器的工作效率。
[0044]應當理解的是,以上的一般描述和后文的細節(jié)描述僅是示例性和解釋性的,并不能限制本公開。
【附圖說明】
[0045]此處的附圖被并入說明書中并構成本說明書的一部分,示出了符合本公開的實施例,并與說明書一起用于解釋本公開的原理。
[0046]圖1是根據(jù)一示例性實施例示出的一種請求數(shù)據(jù)的方法的流程圖;
[0047]圖2是根據(jù)一示例性實施例示出的一種請求數(shù)據(jù)的方法的流程圖;
[0048]圖3是根據(jù)一示例性實施例示出的一種請求數(shù)據(jù)的裝置的框圖;
[0049]圖4是根據(jù)一示例性實施例示出的一種請求數(shù)據(jù)的裝置中返回模塊的框圖;
[0050]圖5是根據(jù)一示例性實施例示出的一種裝置的框圖(服務器的一般結構)。
【具體實施方式】
[0051]為使本公開的目的、技術方案和優(yōu)點更加清楚,下面將結合附圖對本公開實施方式作進一步地詳細描述。
[0052]本公開一示例性實施例提供了一種請求數(shù)據(jù)的方法,本方法實施例應用于終端中,參見圖1,方法流程包括:
[0053]在步驟101中,獲取來自查詢請求終端的對數(shù)據(jù)庫的第一查詢請求;
[0054]在步驟102中,檢測是否存在與第一查詢請求相同的查詢請求;
[0055]在步驟103中,當存在與第一查詢請求相同的查詢請求時,在相同的查詢請求中選取一查詢請求提交給數(shù)據(jù)庫;
[0056]在步驟104中,接收數(shù)據(jù)庫返回的查詢結果,并將查詢結果返回給查詢請求終端。
[0057]本公開實施例通過獲取來自查詢請求終端的對數(shù)據(jù)庫的第一查詢請求,檢測是否存在與第一查詢請求相同的查詢請求,如果存在則選取一個查詢請求提交給數(shù)據(jù)庫,并將數(shù)據(jù)庫返回的查詢結果屬于相同的查詢請求的各數(shù)據(jù)請求中歐段。降低了數(shù)據(jù)庫的查詢次數(shù),進而降低了數(shù)據(jù)庫的系統(tǒng)消耗,相應的提高了單次查詢的響應速度,提高了數(shù)據(jù)庫服務器的工作效率。
[0058]本公開另一示例性實施例提供了一種請求數(shù)據(jù)的方法,本方法實施例應用于終端中,參見圖2,方法流程包括:
[0059]在步驟201中,獲取來自查詢請求終端的對數(shù)據(jù)庫的第一查詢請求。
[0060]其中,獲取方式為數(shù)據(jù)庫服務器接收查詢請求終端通過網(wǎng)絡向數(shù)據(jù)庫服務器發(fā)送的查詢請求。
[0061]其中,第一查詢請求為數(shù)據(jù)庫服務器接收到眾多查詢請求中的一個。
[0062]在步驟202中,檢測是否存在與第一查詢請求相同的查詢請求。
[0063]在數(shù)據(jù)庫服務器中預先設定一個時間周期,以使服務器在每一個時間周期中內(nèi)對接收到的各個查詢請求進行檢測,確定屬于請求相同數(shù)據(jù)的查詢請求。
[0064]其中,查詢請求終端向服務器發(fā)送的查詢請求包括URL(Uniform ResoureLocator,統(tǒng)一資源定位符)中的鏈接地址和請求參數(shù),以及查詢請求終端的源地址。
[0065]相應的,步驟202中對于檢測是否存在與第一查詢請求相同的查詢請求的過程可以通過以下步驟進行實現(xiàn):
[0066]根據(jù)第一查詢請求中的鏈接地址和請求參數(shù),確定是否存在與第一查詢請求相同的查詢請求。
[0067]其中,對各個查詢請求進行檢測的方式可以為:具備相同的鏈接地址以及相同的請求參數(shù)的查詢請求,確定為請求同一數(shù)據(jù)的查詢請求;另外,也可以包括各個查詢請求中的鏈接地址和請求參數(shù)不相同,但是可以將各個查詢請求中的鏈接地址轉換或者映射到同一個鏈接地址以及同一組請求參數(shù)的各個查詢請求,確定為請求同一數(shù)據(jù)的查詢請求。因此,服務器在接收到各個查詢請求終端發(fā)送的查詢請求后,可選的,還可以對查詢請求中的鏈接地址以及請求參數(shù)進行轉換或者映射的操作,以便進一步識別屬于請求同一數(shù)據(jù)的查詢請求。
[0068]進一步的,同一數(shù)據(jù)可以指一項數(shù)據(jù),例如:查詢請求終端查詢北京的天氣信息的查詢請求;同一數(shù)據(jù)也可以指在同一頁面中顯示的多項數(shù)據(jù),例如:查詢請求終端打開主題市場后,向服務器查詢顯示主題市場首頁面中專題列表的查詢請求。
[0069]在步驟203中,當存在與第一查詢請求相同的查詢請求時,在相同的查詢請求中選取一查詢請求提交給數(shù)據(jù)庫。
[0070]其中,選取查詢請求的過程可以由以下步驟進行實現(xiàn):
[0071]當存在與第一查詢請求相同的查詢請求時,在相同的查詢請求中選取請求時間最早的一個查詢請求提交給數(shù)據(jù)庫。
[0072]在數(shù)據(jù)庫服務器每進入一個預設時間對應的時間周期時,按照相同的查詢請求中各查詢請求的到達時間順序,選取第一個接收到的查詢請求以通過該查詢請求進行數(shù)據(jù)查詢。
[0073]在數(shù)據(jù)庫服務器的中間層中分別為該相同的查詢請求中各查詢請求創(chuàng)建對應的查詢線程。再通過其中選取到的查詢請求對應的查詢線程將該查詢請求提