大資料批次鍵值查詢怎樣才會更快
一般選擇資料庫來存放資料,並藉助資料表的索引來加快檢索速度。利用索引查詢資料,即使資料總量達到有10億,對於單條記錄的查詢效率大約在數十毫秒( 複雜度為LogN)。但是,如果需要查詢的鍵值很多,比如多達幾千甚至幾萬的時候,如果每次都獨立查詢,那讀取和比較也會累積到幾萬甚至幾十萬次,時間延遲由此也會漲到幾十分鐘甚至小時級別,這時候再簡單地使用資料庫索引對於使用者體驗必然是難以容忍的了。
比如下面這樣的查詢:
結構如下:
欄位 | 型別 | 備註 |
id | long | 1000000000001開始自增 |
data | string | 隨機字串(長度為 180 位元組) |
對這樣結構的6億條資料,從中取1萬個隨機id對應的記錄,用Oracle大約就需要120 秒了。
使用的SQL大概這樣:select * from testdata where id in (…)
另外由於in中的個數最大1000個,還需要多次查詢後的結果再合併,處理起來也比較麻煩。
同樣的資料,用集算器來處理,程式碼簡單且查詢高效,看下面這個例子:
|
A | B |
1 | =file("testdata.ctx").create() | //開啟組表檔案testdata.ctx |
2 | =A1.index@3(id_idx) | //載入三級索引 |
3 | =keys | //待查詢的隨機鍵值序列 |
4 | =A1.icursor(;A3.contain(id),id_idx) | //利用組表索引id_idx查詢 |
這裡使用了集算器組表功能,基於高效能索引和批次鍵值查詢,可以有效地應對這種場景。該場景下,集算器查詢僅用了20秒,相比Oracle的120秒提升了6倍。感興趣可以參考:
集算器還很容易嵌入到Java應用程式中, 有使用和獲得它的方法。
關於集算器安裝使用、獲得免費授權和相關技術資料,可以參見 。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69900830/viewspace-2699766/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 想要批次查詢快遞,怎麼操作可以一鍵快速查詢物流資訊
- 查詢前90%的資料值
- MYSQL查詢和插入資料的流程是怎樣的MySql
- Logtail:像查詢資料庫一樣查詢日誌AI資料庫
- 究竟多大才算是大資料,大資料怎麼學習?大資料
- JSP怎樣將查詢的資料實現分頁操作JS
- 谷歌收錄批次查詢,教你批次查詢谷歌收錄的方法谷歌
- [轉載]mtu值怎樣設定才網速最快
- 用HBase做高效能鍵值查詢?
- MSSQL遍歷資料庫根據列值查詢資料SQL資料庫
- 谷歌收錄批次查詢,谷歌收錄批次查詢的方法步驟谷歌
- 學習 XQuery:XML資料查詢的關鍵XML
- 檔案批次查詢複製匯出,按檔名批次查詢檔案,按檔案內容批次查詢檔案
- 阿里巴巴在途物流怎樣一鍵批次檢視?阿里
- 大資料時代,怎樣才能獲得真正有價值的資訊大資料
- 在進行行情 tick 資料儲存時,哪種資料結構查詢起來更快?資料結構
- MySQL - 資料查詢 - 簡單查詢MySql
- 怎樣搭建大資料平臺大資料
- TableStore多元索引,大資料查詢的利器索引大資料
- 共享資料夾怎麼在另一個電腦檢視 怎樣查詢別人共享的資料夾
- 查詢演算法__插值查詢演算法
- 流式查詢1. mybatis的遊標Cursor,分頁大資料查詢MyBatis大資料
- 怎樣的遊戲才會讓你覺得有趣呢?遊戲
- 怎樣學python ,才不會從入門到放棄Python
- 建設智慧城市怎樣做才不會迷失方向?
- Java ——MongDB 插入資料、 模糊查詢、in查詢Java
- 資料庫高階查詢之子查詢資料庫
- RESTFul資料查詢REST
- MYSQL查詢資料MySql
- indexedDB 查詢資料Index
- AMS 資料查詢
- LINUX下查詢大檔案及大的資料夾Linux
- 大資料怎樣入門學習?大資料
- 怎樣吃晚餐才健康?(轉)
- 給Agent加上資料庫功能會怎樣?資料庫
- mysql編寫sql指令碼:要求表沒有主鍵,但是想查詢沒有相同值的時候才進行插入MySql指令碼
- 【java】【插值查詢】Java
- 資料庫基礎查詢--單表查詢資料庫