[發明專利]數據庫的檢索方法及裝置在審
| 申請號: | 201710862402.6 | 申請日: | 2017-09-21 |
| 公開(公告)號: | CN110019192A | 公開(公告)日: | 2019-07-16 |
| 發明(設計)人: | 周正中 | 申請(專利權)人: | 阿里巴巴集團控股有限公司 |
| 主分類號: | G06F16/22 | 分類號: | G06F16/22;G06F16/245 |
| 代理公司: | 北京安信方達知識產權代理有限公司 11262 | 代理人: | 孫敬霞;栗若木 |
| 地址: | 英屬開曼群島大開*** | 國省代碼: | 開曼群島;KY |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 查詢請求 檢索 數據庫 查詢參數 檢索方式 接收用戶 判斷結果 索引查詢 索引 匹配 攜帶 引入 申請 | ||
一種數據庫的檢索方法及裝置,包括:接收用戶的查詢請求,所述查詢請求中攜帶有查詢參數;基于所述查詢參數,判斷所述查詢請求是否與所述數據庫的索引查詢條件相匹配;根據所述判斷結果,以所述查詢請求對應的檢索方式對所述數據庫執行檢索操作。本申請至少能夠減少索引引入的開銷同時提高數據的檢索速度。
技術領域
本發明涉及數據庫技術領域,尤其涉及一種數據庫的檢索方法及裝置。
背景技術
為了提高數據的檢索速度,通常的做法是對數據創建索引。但并不是所有的數據,創建索引都有加快檢索速度的效果。針對數據庫中的傾斜數據,如果通過索引掃描,需要按索引的順序,先訪問索引的葉子,再訪問堆表的記錄,掃描會非常慢,反而不如直接全表掃描數據。然而,相關技術在數據庫中創建索引時,會對表中所有記錄創建索引,不僅引入了開銷,而且會使傾斜數據的檢索速度更慢。
發明內容
本申請旨在至少解決相關技術中的技術問題之一。
本申請提供一種數據庫的檢索方法及裝置,至少能夠減少索引引入的開銷同時提高數據的檢索速度。
本申請采用如下技術方案:
一種數據庫的檢索方法,包括:
接收用戶的查詢請求,所述查詢請求中攜帶有查詢參數;
基于所述查詢參數,判斷所述查詢請求是否與所述數據庫的索引查詢條件相匹配;
根據所述判斷結果,以所述查詢請求對應的檢索方式對所述數據庫執行檢索操作。
其中,以所述查詢請求對應的檢索方式對所述數據庫執行檢索操作,包括:在所述查詢請求與所述數據庫的索引查詢條件相匹配時,確定所述查詢請求支持索引掃描,以索引掃描的方式執行所述檢索操作。
其中,所述基于所述查詢參數,判斷所述查詢請求是否與所述數據庫的索引查詢條件相匹配,包括:將所述查詢參數與預先確定的過濾值比較,所述過濾值為所述表的傾斜數據;在所述查詢參數屬于所述過濾值時,則確定所述查詢請求與所述數據庫的索引查詢條件不匹配;在所述查詢參數不屬于所述過濾值時,則確定所述查詢請求與所述數據庫的索引查詢條件相匹配。
其中,所述方法還包括:根據數據庫的表的表統計信息以及預先設定的索引條件,確定所述表的過濾值,并記錄到所述表的索引信息中;所述表統計信息包括:所述表中出現頻率最高的前M個字段值及其出現頻率,所述M為預設值;所述索引條件為:出現頻率高于N的字段值為所述過濾值,所述N為預設值;其中,M為不小于1的整數,N滿足0<N<1。
其中,所述方法還包括:過濾所述查詢參數對應的表數據中的所述過濾值,并針對過濾后的表數據中各字段值構建索引數據。
其中,所述方法還包括:在表數據發生更新時,確定所述表的新過濾值,并根據所述新過濾值、以及所述表的索引信息中已記錄的過濾值,執行所述表的索引維護操作;
其中,所述索引維護操作包括如下之一或兩項:
刪除所述索引信息中所述過濾值對應的索引頁;
識別屬于所述索引信息中的過濾值但不屬于所述新過濾詞的字段值,并為所識別出的字段值構建索引數據。
其中,所述執行索引維護操作之后,還包括:將所述新過濾值更新到所述表的索引信息中。
其中,所述根據所述新過濾值、和所述表的索引信息中已記錄的過濾值,執行所述表的索引維護操作,包括:將所述新過濾值與所述表的索引信息中已記錄的過濾值比較,在所述比較的結果為不一致時執行所述索引維護操作。
一種數據庫的檢索裝置,包括:
接收模塊,用于接收用戶的查詢請求,所述查詢請求中攜帶有查詢參數;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于阿里巴巴集團控股有限公司,未經阿里巴巴集團控股有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710862402.6/2.html,轉載請聲明來源鉆瓜專利網。





