日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

nutsdb与mysql_分享下 nutsdb 单机 1 亿、10 亿数据实测

發(fā)布時(shí)間:2023/12/1 数据库 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 nutsdb与mysql_分享下 nutsdb 单机 1 亿、10 亿数据实测 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

大家好, 想給大家分享下我最近為 nutsdb 做的數(shù)據(jù)測試。

測試項(xiàng)目

起因

事情起因是這個(gè) issue ,簡單說就是內(nèi)存高了,不夠用了。

可能很多人不知道 NutsDB。簡單介紹下,NutsDB 是我?guī)讉€(gè)月以前開源的一個(gè) Go 語言編寫的內(nèi)嵌型 KV 數(shù)據(jù)庫,支持多種數(shù)據(jù)結(jié)構(gòu)。開源取的的反饋:一開源就上了 Go 趨勢榜。一周斬獲 500+star,也得到很多同行的關(guān)注,給我提建議。還有幾個(gè)用在了生產(chǎn)環(huán)境。

驗(yàn)證測試一億條數(shù)據(jù)

回到正題:

為了驗(yàn)證這個(gè) issue

于是我先測了一個(gè)億的數(shù)據(jù)量

版本:nutsdb V0.4.0

服務(wù)器配置:Ubuntu 16.04 64 位 8 核 64G

數(shù)據(jù)量:占有 11G 左右 (目前版本沒有做壓縮)

為了加快測試,沒有設(shè)置實(shí)時(shí) sync,寫入速度:25.7w/s

key\value 類似:

key := []byte("namename" + strconv.Itoa(i))

val := []byte("valvalvavalvalvalvavalvalvalvavalvalvalvaval" + strconv.Itoa(i))

測試結(jié)果:

Mem : 64430 MB , Free: 63776 MB , Used:176 MB , Usage:0.273957%

start db index cost time: 72.076μs

batch put data cost: 6m29.067011134s

Mem : 64430 MB , Free: 24760 MB , Used:39147 MB , Usage:60.759105%

發(fā)現(xiàn) 消耗內(nèi)存是數(shù)據(jù)量的 3.46 倍左右,說實(shí)話雖然比他說的少幾倍,但我還是有點(diǎn)接受不了。怎么辦?

解決

于是開發(fā)了新的模式 EntryIdxMode:HintBPTSparseIdxMode, 專門為節(jié)約內(nèi)存設(shè)計(jì)。原理采用 b+樹多級(jí)索引的方式。

master 分支 已經(jīng)支持了,有興趣的歡迎嘗試。

那我們單機(jī)先來測試 10 億條數(shù)據(jù)。

新模式測試 10 億條數(shù)據(jù)

版本 :nutsdb master 分支

主機(jī)配置:Ubuntu 16.04 64 位 2 核 2G

key\value 類似上面的

為了加快測試,沒有設(shè)置實(shí)時(shí) sync

測試結(jié)果:

Mem : 1999 MB , Free: 1786 MB , Used:53 MB , Usage:2.688618%

Mem : 1999 MB , Free: 1695 MB , Used:135 MB , Usage:6.784733%

內(nèi)存占用只有 82MB,完成 10 億條數(shù)據(jù)插入,但是寫速度降到 4.35w/s。產(chǎn)生索引數(shù)據(jù)文件 153G

再來看下讀的表現(xiàn),讀取 10 條數(shù)據(jù),這個(gè)是沒有加緩存的結(jié)果如下:

load cost: 2.607796193s

key , find val namename0 valvalvavalvalvalvavalvalvalvavalvalvalvaval0

key , find val namename1 valvalvavalvalvalvavalvalvalvavalvalvalvaval1

key , find val namename2 valvalvavalvalvalvavalvalvalvavalvalvalvaval2

key , find val namename3 valvalvavalvalvalvavalvalvalvavalvalvalvaval3

key , find val namename4 valvalvavalvalvalvavalvalvalvavalvalvalvaval4

key , find val namename5 valvalvavalvalvalvavalvalvalvavalvalvalvaval5

key , find val namename6 valvalvavalvalvalvavalvalvalvavalvalvalvaval6

key , find val namename7 valvalvavalvalvalvavalvalvalvavalvalvalvaval7

key , find val namename8 valvalvavalvalvalvavalvalvalvavalvalvalvaval8

key , find val namename9 valvalvavalvalvalvavalvalvalvavalvalvalvaval9

read cost 87.208728ms

好了分享到這里。歡迎留言交流。

最后,歡迎去 nutsdb 提 issue,點(diǎn) Star 關(guān)注,提交 PR,謝謝!

總結(jié)

以上是生活随笔為你收集整理的nutsdb与mysql_分享下 nutsdb 单机 1 亿、10 亿数据实测的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。