Rocksdb是一個(gè)kv引擎,由facebook團(tuán)隊(duì)基于levelDB改進(jìn)而來,Rocksdb采用LSM-tree存儲(chǔ)數(shù)據(jù),良好的讀寫特性以及壓縮特性使得其非常受歡迎。此外,Rocksdb引擎作為插件已經(jīng)集成在facebook維護(hù)的MySQL分支,用戶可以通過SQL來訪問rocksDB。本文主要通過分析Rocksdb引擎的記錄格式,并通過對(duì)比innodb,來讓大家了解Rocksdb。Rocksdb作為一個(gè)kv引擎,用戶通過put(key,value)來寫入key,或者通過get(key)接口來獲取value,對(duì)rocksdb本身而言,每條記錄都是一個(gè)key-value。當(dāng)Rocksdb作為一個(gè)存儲(chǔ)引擎接入到MySQL時(shí),key-value結(jié)構(gòu)如何存儲(chǔ)表中各個(gè)索引,以及如何記錄中各個(gè)列的信息是本文要具體討論的。rocksdb引擎與innodb引擎類似,也是采用索引組織表,無論是表(主鍵索引)還是二級(jí)索引都是以LSM tree方式組織,rocksdb記錄主要包括三部分,key,value和meta三部分內(nèi)容,具體見下表,然后我通過介紹一條具體記錄在rocksdb引擎中的存儲(chǔ)格式來說明問題。

rocksdb基本記錄存儲(chǔ)格式

    • key_size

      key

      value_size

      value

      PK/SecKey

      網(wǎng)友評(píng)論

      <cite id="yvome"></cite>

      <blockquote id="yvome"></blockquote>