<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
在 ToplingDB 的 CO-Index(Compressed Ordered Index) 家族中,Nest Succinct Trie 是最通用的。但是,伴隨通用的,往往是低效。我們針對一些特殊場景,採用了特殊的實現,用以提高效能……
這裡面,最特殊的一類 Index,就是 UintIndex,顧名思義,就是 Key 為 unsigned int 時的 index。
在 MySQL 中,我們往往會建立這樣一個表:
CREATE TABLE Student( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(255) INDEX, dorm_id INT INDEX, -- others ... );
這裡的 PRIMARY KEY
最終體現到 MyRocks,是這樣的形式:
PrefixID | id |
通過設定,我們可以通過 keyPrefixLen
將 PrefixID
分離出去,這樣,Index 中就只剩下一個 id
欄位了,並且,在 SST 中,這些 id
往往都是比較緊密的範圍(被刪除的 id
是範圍中的空洞
),比如,在某個 SST 中,儲存的 id 範圍是 1,000,000~2,000,000。
並且,我們知道,CO-Index 會將使用者 Key(在這裡就是 id 欄位) 對映到一個 內部ID
,再用這個 內部ID
去存取 PA-Zip……
在一個 SST 中,把這一切串起來,我們就能使用簡單且高效的方式來實現 Index 了:
圖中的 ValueOrd
就是前面說的 內部ID
,Index 共有 108 個 Key,BitMap 中有 MaxKey - MinKey + 1 = 229
個 Bit。
空洞
也沒有,那麼,Index 中我們只需要儲存 id
的最大最小值。
空洞
,那麼,Index 中我們只需要儲存那些空洞
中的 id
。空洞
,那麼,Index 中我們只需要儲存一個 BitMap,其中相應 bit 的含義是這個 id 是否存在
。進一步,在概念上,如果我們把 一個空洞也沒有 和 只有極少數的空洞 也用 Rank-Select 來表達:
那麼,這三種情況,在形式上就可以統一起來!實際上,在程式碼實現中,這三種不同的 Rank-Select 實現是作為模板類 UintIndex 的模板引數的,在保持抽象的同時,又不損失效能。
在 MongoDB 中,也存在類似 MySQL Student.id 這樣的東西:
MongoDB 有兩大類 Key Value 資料,RecordStore(即 Collection) 和 Index:
這樣,MongoDB 的 RecordStore 也可以利用 UintIndex
壓縮率自然不用說,UintIndexAllOne 的壓縮率接近於無窮大,壓縮率最差的 UintIndexBitMap,其壓縮率也在 30 倍以上!
效能,最關鍵的是效能,相比傳統的塊壓縮,Nest Succinct Trie 最大的效能劣勢在於順序掃描(從頭至尾順序掃描,定位到某個點然後接著順序掃描),因為對於 Nest Succinct Trie,即便是順序掃描,它的計算也很複雜,並且記憶體存取非常隨機。而對於 UintIndex,事情就簡單多了,比 Nest Succinct Trie 會快 100 倍以上,而其中佔比最大的效能開銷,實際上是函數呼叫本身!
到此這篇關於以mysql為例詳解ToplingDB 的 UintIndex的文章就介紹到這了,更多相關mysql UintIndex內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45