記憶體資料庫的行存表索引是怎麼做到加速的
各位朋友知道, 記憶體資料庫中 ,索引幾乎伴著所有結構化和非結構資料庫出現,每個資料庫使用的索引技術都有點像,但又不全像。可以肯定的是,索引的唯一目標就是為資料主人跑腿,實現更高的查詢效能!
那麼以記憶體分散式資料庫 RapidsDB為例 , 它的行存表索引是怎麼扮演好它的加速功能的呢 ?
先來看跳錶索引 。 RapidsDB中的預設索引型別是跳錶索引,對比其他大多數資料庫(比如MYSQL)使用的B-Tree索引,RapidsDB將跳錶索引優化為在記憶體中執行,不僅可以實現無鎖並提供極快的插入效能,還提供Btree類似的O(log(n))查詢效能,非常適合OLTP遍歷查詢。
索引使用到的無鎖(或者叫非阻塞)演算法是跳錶索引的一個大特點:它使資料庫執行緒始終可以執行,尤其在多核CPU硬體上實現高併發負載。同時還擺脫了Btrees需要使用複雜的鎖定方案來實現執行緒安全的困局。對BWtree這類比較新的無鎖索引資料結構,規避掉被設計遠超跳錶的複雜資料結構實現無鎖。可以說跳錶的簡單性使其非常適合無鎖實現。
接下來看看 雜湊索引 。 雜湊索引在資料庫中十分常見。一般情況下,只有當查詢對索引中的每一列都使用相等過濾器時,才會使用雜湊索引。所以按理說,雜湊索引應該只在使用者的特定資料集和工作負載有明顯的需要和可測量的好處時使用。在這些特定情況下,雜湊索引提供了對唯一值的快速精確的匹配訪問。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70019064/viewspace-2905926/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- PG資料庫記憶體告警了怎麼分析資料庫記憶體
- 解讀記憶體資料庫的儲存需求RC記憶體資料庫
- 記憶體中的資料儲存記憶體
- Linux記憶體是怎麼工作的?Linux記憶體
- 將altibase記憶體庫的表匯出到oracle資料庫記憶體Oracle資料庫
- 合理配置TimesTen記憶體資料庫Hash索引的PAGES引數記憶體資料庫索引
- 毫秒級從百億大表任意維度篩選資料,是怎麼做到的...
- 如何檢視MySQL資料庫佔多大記憶體,佔用太多記憶體怎麼辦?MySql資料庫記憶體
- 記憶體資料庫記憶體資料庫
- C++ 類的記憶體分配是怎麼樣的?C++記憶體
- Oracle - 資料庫的記憶體結構Oracle資料庫記憶體
- Oracle - 資料庫的記憶體調整Oracle資料庫記憶體
- 匯出資料量大的報表記憶體溢位怎麼辦?記憶體溢位
- Mongodb記憶體資料庫MongoDB記憶體資料庫
- SAP中的資料庫表索引資料庫索引
- 表資料的儲存對索引的影響索引
- 快閃記憶體將改變資料庫儲存引擎的設計記憶體資料庫儲存引擎
- Fdmemtable 記憶體表儲存圖片的例子記憶體
- 關於InnoDB表資料和索引資料的儲存索引
- 磁碟資料庫與記憶體資料庫的特點比較資料庫記憶體
- Redis 記憶體優化神技,小記憶體儲存大資料Redis記憶體優化大資料
- 什麼是Java記憶體模型(JMM)中的主記憶體和本地記憶體?Java記憶體模型
- 【記憶體資料庫】TimesTen記憶體資料庫
- 記憶體資料庫如何發揮記憶體優勢?記憶體資料庫
- AntDB記憶體管理之記憶體上下文之記憶體上下文機制是怎麼實現的記憶體
- 什麼是記憶體記憶體
- 什麼是庫存?什麼是零庫存?庫存的定義
- 解讀SQL 記憶體資料庫的細節SQL記憶體資料庫
- 資料庫怎麼分庫分表資料庫
- 小數在記憶體中是如何儲存的?記憶體
- 【大頁記憶體】Oracle資料庫配置大頁記憶體記憶體Oracle資料庫
- 【虹科分享】Redis 不僅僅是記憶體資料庫Redis記憶體資料庫
- 資料庫mysql儲存是什麼?可以存什麼?資料庫MySql
- 「Elasticsearch」ES重建索引怎麼才能做到資料無縫遷移呢?Elasticsearch索引
- 顯示卡的視訊記憶體是什麼?記憶體
- Python記憶體資料庫/引擎Python記憶體資料庫
- 構建個人記憶體資料庫記憶體資料庫
- 資料庫表的唯一索引問題資料庫索引