返回顶部
首页 > 资讯 > 数据库 >MySQL的MyRocks是什么
  • 846
分享到

MySQL的MyRocks是什么

2024-04-02 19:04:59 846人浏览 泡泡鱼
摘要

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

本篇内容主要讲解“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是什么”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

您可能感兴趣的文档:

--结束END--

本文标题: MySQL的MyRocks是什么

本文链接: https://lsjlt.com/news/59955.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • MySQL的MyRocks是什么
    本篇内容主要讲解“MySQL的MyRocks是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL的MyRocks是什么”吧! ...
    99+
    2024-04-02
  • mysql的collation是什么
    本篇内容介绍了“mysql的collation是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! my...
    99+
    2024-04-02
  • mysql指的是什么
    这篇文章主要介绍了mysql指的是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。PHP MySQL 简介:通过 PHP,您可以连接和操作数据库。 MySQL 是跟 PHP...
    99+
    2023-06-15
  • MySQL的Seconds_Behind_Master是什么
    这篇文章给大家分享的是有关MySQL的Seconds_Behind_Master是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Seconds_Behind_Master对于mysql主备实例,seconds...
    99+
    2023-06-15
  • mysql是干什么的
    mysql 是一种开源关系型数据库管理系统,用于存储和管理数据。其主要功能包括:数据存储和管理数据检索数据安全性能优化可扩展性mysql 具备开源、易用、可靠、可移植等优点,使其成为各种...
    99+
    2024-04-05
    mysql
  • 什么是MySQL?
    MySQL是一个关系型数据库管理系统,由Oracle公司开发、发布和支持。 1、MySQL是一个数据库管理系统        数据库是结构化数据的集合...
    99+
    2024-04-02
  • 什么是MySQL
    本篇内容主要讲解“什么是MySQL”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“什么是MySQL”吧!MySQL 是最流行的关系型数据库管理系统,在 WEB 应...
    99+
    2024-04-02
  • mysql中的innodb是什么
    mysql中的innodb是什么?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。innodb简介InnoDB,是MySQL的数据库引擎之一,...
    99+
    2024-04-02
  • mysql中的myisam是什么
    mysql中的myisam是什么?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。myisam介绍MyISAM是默认存储引擎(Mysql5.1...
    99+
    2024-04-02
  • mysql中的engine是什么
    今天就跟大家聊聊有关mysql中的engine,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。mysql engine表示存储引擎,存储引擎是MySQ...
    99+
    2024-04-02
  • mysql中的varchar是什么
    mysql中的varchar是什么?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。mysql中varchar是可变长度的类型,在...
    99+
    2024-04-02
  • MySQL中的锁是什么?
    锁,在现实生活中是为我们想要隐藏于外界所使用的一种工具。在计算机中,是协调多个进程或县城并发访问某一资源的一种机制。在数据库当中,除了传统的计算资源(CPU、RAM、I/O等等)的争用之外,数据也是一种供许...
    99+
    2024-04-02
  • mysql中的char是什么
    这篇文章将为大家详细讲解有关mysql中的char,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。char简介在MYSQL中,字段类型char是指:使用指定长度的固定长度表...
    99+
    2024-04-02
  • mysql的标识是什么
    这篇文章运用简单易懂的例子给大家介绍mysql的标识是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。mysql的标识列是什么MySQL中标识列又称为自增长列,在mysql的表格字段...
    99+
    2024-04-02
  • MySQL的特性是什么
    这篇文章主要介绍MySQL的特性是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗...
    99+
    2024-04-02
  • mysql-server指的是什么
    这篇文章给大家分享的是有关mysql-server指的是什么的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。mysql-server是什么?mysql-server表示服务器,是服...
    99+
    2024-04-02
  • mysql workbench指的是什么
    这篇文章主要介绍了mysql workbench指的是什么,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。MySQL Workbench是一款专为...
    99+
    2024-04-02
  • mysql中的changebuffer是什么
    mysql中的change buffer是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。首先:正常insert的时候,也是...
    99+
    2024-04-02
  • MySQL的索引是什么
    本篇文章为大家展示了MySQL的索引是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。和其它数据库一样,MySQL索引对表中指定列进行排序后另外保存,用于快速查找...
    99+
    2024-04-02
  • mysql的不足是什么
    这篇文章给大家分享的是有关mysql的不足是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 mysql的不足:1、MySQL不支持自定义数据类型;...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作