[發明專利]查詢數據的方法及裝置有效
| 申請號: | 201310067958.8 | 申請日: | 2013-03-04 |
| 公開(公告)號: | CN104035923B | 公開(公告)日: | 2017-09-01 |
| 發明(設計)人: | 周劍;周宇 | 申請(專利權)人: | 阿里巴巴集團控股有限公司 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30 |
| 代理公司: | 北京潤澤恒知識產權代理有限公司11319 | 代理人: | 蘇培華 |
| 地址: | 英屬開曼群島大開*** | 國省代碼: | 暫無信息 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 查詢 數據 方法 裝置 | ||
技術領域
本申請涉及數據查詢技術領域,特別是涉及查詢數據的方法及裝置。
背景技術
在高并發環境下,很容易發生以下情況:在同一時間段內,大量用戶對數據庫系統的并發查詢導致數據庫壓力增大,響應緩慢,進而影響整個系統的正常運轉。但在實踐中發現,在大量的查詢請求中有很多都是同樣的。例如,用戶點擊網站首頁,如果首頁上面需要展示的部分或全部數據來自于數據庫,則大部分內容對于用戶來說是完全一樣的,對于后臺服務器而言,需要執行的數據庫查詢操作也是一樣的。
基于該特點,為了提高數據查詢的效果,現有技術中一般會采用緩存來應對,也即,如果客戶端提交的兩個查詢是完全一樣的,則服務器端會緩存前一個查詢結果,并直接將緩存的查詢結果返回給下一個相同的查詢,從而減少對數據庫的訪問。由于內存比數據庫的讀寫效率要高,所以對于發起同樣請求的客戶端來說,響應時間會大大縮短。
然而,現有技術中雖然使用了緩存方案,但是,在緩存尚未建立的時間段內,所有的查詢請求都會無差別地提交到數據庫里。如果查詢時間較長,那么這段時間內產生的并發請求也足以使數據庫性能驟降,因此,仍然會經常發生數據庫負擔過重的問題。
發明內容
本申請提供了查詢數據的方法及裝置,能夠避免對數據庫造成不必要的負擔,有利于提高查詢效率。
本申請提供了如下方案:
一種查詢數據的方法,包括:
攔截當前查詢請求;
判斷是否存在與該當前查詢請求相同的歷史查詢請求正在執行查詢數據庫的操作;
如果是,則阻塞所述當前查詢請求;
待所述歷史查詢請求執行完成后,利用其查詢結果向所述當前查詢請求返回查詢結果。
一種查詢數據的裝置,包括:
請求攔截單元,用于攔截當前查詢請求;
判斷單元,用于判斷是否存在與該當前查詢請求相同的歷史查詢請求正在執行查詢數據庫的操作;
請求阻塞單元,用于如果判斷單元的判斷結果為是,則阻塞所述當前查詢請求;
查詢結果返回單元,用于待所述歷史查詢請求執行完成后,利用其查詢結果向所述當前查詢請求返回查詢結果。
根據本申請提供的具體實施例,本申請公開了以下技術效果:
通過本申請,在攔截到一個數據庫查詢請求之后,可以首先判斷是否存在相同的查詢請求正在執行查詢數據庫的操作,如果存在,則可以將該當前查詢請求阻塞,不再將其提交到數據庫進行查詢,等到正在執行查詢數據庫操作的查詢請求獲得查詢結果之后,再利用該查詢結果向當前查詢請求返回查詢結果。因此,在實現過程中,不會出現在一次查詢數據庫操作正在執行的過程中,又有相同的查詢請求重復提交到數據庫的情況,因此,減輕了數據庫的訪問負擔,有利于提高查詢效率。
當然,實施本申請的任一產品并不一定需要同時達到以上所述的所有優點。
附圖說明
為了更清楚地說明本申請實施例或現有技術中的技術方案,下面將對實施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1是本申請實施例提供的方法的流程圖;
圖2是本申請實施例提供的另一方法的流程圖;
圖3是本申請實施例提供的裝置的示意圖。
具體實施方式
下面將結合本申請實施例中的附圖,對本申請實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本申請一部分實施例,而不是全部的實施例。基于本申請中的實施例,本領域普通技術人員所獲得的所有其他實施例,都屬于本申請保護的范圍。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于阿里巴巴集團控股有限公司,未經阿里巴巴集團控股有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310067958.8/2.html,轉載請聲明來源鉆瓜專利網。
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





