mysql rocksdb使用报告

作者:某网盘DBA
转发已经过作者同意,如果有其他问题请及时联系。
非经过允许请勿随意转发,尊重版权,感谢。

背景

rocksdb是facebook基于google的leveldb二次开发的key-value存储引擎。目前,facebook已将rocksdb迁移至mysql,作为mysql的可选的存储引擎。
此汇报用于记录rocksdb各种场景下的性能表现,不定期更新。

oltp性能测试

Hardware
Intel(R) Xeon(R) CPU E5-2630 v3 @ 2.40GHz(ht 32)
2.0TB memblaze pcie SSD
128GB RAM

OS Version
Ubuntu 14.04.3 LTS

Data Sample
40M rows*16 tables

MySQL Version
MariaDB 10.2.5

Workload
oltp-rw
oltp-ro
update-only(index)

Storeage Engine
innodb(without compression)
innodb-compression
rocksdb

大小对比

mysql rocksdb使用报告_第1张图片
大小对比

6亿4千万数据导入mysql,innodb未经压缩大小为160GB,innodb压缩后86GB,rocksdb为62GB。
rocksdb只有innodb(压缩后)的70%。


oltp-rw

mysql rocksdb使用报告_第2张图片
mysql rocksdb使用报告_第3张图片

70/30读写测试,48个并发线程以下,rocksdb ops要比innodb-compress好。
但超过48线程,rocksdb性能下降较明显。同时,rocksdb的平均响应时间要比innodb高出不少。


oltp-ro

mysql rocksdb使用报告_第4张图片
mysql rocksdb使用报告_第5张图片

只读测试,rocksdb只有innodb-compress性能的70%。不过在高并发下,rocksdb平均响应时间表现要比innodb-compress好。


update-only(index)

mysql rocksdb使用报告_第6张图片
mysql rocksdb使用报告_第7张图片

只写测试,rocksdb性能表现优异,ops大概是innodb-compress的10倍。随着并发线程的增加,响应时间几乎不变,维持在50ms以下。


结论:

1. rocksdb压缩率非常高,大约只有innodb的1/3,同时也要比压缩后的innodb小。
2. rocksdb读性能对比innodb还是差不少,但是跟压缩后的innodb相比,某些场景下,还是有一定优势。
3. 写入性能非常优秀。
4. 非常适合写多读少,并且对容量比较敏感的业务场景。

你可能感兴趣的:(mysql rocksdb使用报告)