文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

MySQL的MyRocks是什么

2024-04-02 19:55

关注

本篇内容主要讲解“MySQL的MyRocks是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL的MyRocks是什么”吧!

一 前言 
   最近一两年,数据库技术尤其是MySQL方面的发展可谓百花齐放,TokuDB,MyRocks ,MySQL 5.7 GA,MySQL 8.0 doc release 其软件也在开发当中,ALiSQL 开源。其中有功能上的改进的,也有针对Innodb 本身缺陷(主要是存储空间方面的)做优化的,作为数据库技术方面的从业者多少有些应接不暇。
二 MyRocks 是什么
   MyRocks是FB基于levelDB(使用LSM 组织数据结构)开发并且开源出来的数据库存储引擎,支持通用的MySQL 读写,锁机制,MVCC,事务(目前仅支持RR,RC),主从复制。目前已经在FB的用户中心使用。
三 MyRocks 解决什么问题
   这需要先从FB的业务模式来说,fb 作为全球最大的sns网站,其数据量巨大,需要存储数据的服务器想必也是数十万或者百万级别的,这些都是money。(同样也适用于阿里,腾讯这样体量的公司)为了应对未来存储空间的增长和节约服务器,fb开发了此款存储引擎。为啥Innodb 不满足需求呢? 熟悉Innodb存储引擎的朋友知道Innodb是基于B+Tree 实现的数据存储,其默认的数据块大小是16k,目前支持可调节的block_size. 但是依然存在如下问题:
 1 写入放大.
    B*tree要修改数据时,就需要将新入数据下面的数据重新排位,特别是当写入的数据排在较高的位置时,需要大量的移位操作才能完成写入。而且InnoDB 读写访问数据的最小逻辑单位是数据块,随机写的情况下,修改N行,可能要修改N个数据块。
    MyRocks的写操作以append only的方式。根据LSM Tree的算法,其将随机写转化为顺序写,写操作只需更新内存,内存中的数据以块数据形式刷到磁盘,是顺序的IO操作,另外磁盘文件定期的合并操作,也将带来磁盘IO操作。
具体实现方式如下:

  1. a 当有写操作(或update操作)时,写入位于内存的buffer,内存中通过某种数据结构(如skiplist)保持key有序。

  2. b 一般的实现也会将数据追加写到磁盘Log文件,以备必要时恢复。

  3. c 内存中的数据定时或按固定大小地刷到磁盘,更新操作只不断地写到内存,并不更新磁盘上已有文件。

  4. d 随着越来越多写操作,磁盘上积累的文件也越来越多,这些文件不可写且有序。

  5. e 定时对文件进行合并操作(compaction),消除冗余数据,减少文件数量。

 2 磁盘空间碎片
   B*tree分裂导致page内有较多空闲空间,总体空间利用率不高。尽管Innodb提供压缩的方式,但是压缩以block为单位,也会造成浪费。比如总共16k的数据,压缩到5k 但是存储磁盘依然需要8k 的空间。
 3 RocksDB对齐开销小:SST file (默认2MB)需要对齐,但远大于4k, RocksDB_block_size(默认4k) 不需要对齐,因此对齐浪费空间较少。
 
四 有哪些限制
  1 MyRocks目前只支持两种隔离级别,RC和RR。
  2 锁机制不健全 不支持gap lock
  3 目前阶段Innodb和Myrocks 混用不稳定,Percona 在做合并的工作,ACMUG大会上的Percona工程师表示已经测试了80%的场景。
  4 binlog与RocksDB之间没有xa,异常crash可能丢数据。所以,MyRocks一般开启semi-sync.
  5 读性能上相对Inndb 比较弱,不支持MRR ,范围查询比较慢。

到此,相信大家对“MySQL的MyRocks是什么”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯