zoukankan      html  css  js  c++  java
  • Percona,MariaDB,MySQL衍生版如何取舍

    缘起

    自从甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险。而且Oracle对培养MySQL这个免费的儿子并不太用心,漏洞修补和版本升级的速度一段时间非常缓慢,所以业界对MySQL的未来普遍不抱有乐观态度。因此社区采用分支的方式来避开这个风险,例如谷歌、Facebook、RedHat都将MySQL替换成了衍生版,国内也有企业纷纷放弃了MySQL官方版,像阿里和腾讯还做起了自己的MySQL衍生版。

    目前MySQL领域存在着众多的衍生版数据库,主流的有官方MySQL、MariaDB以及Percona Server,小众一些的还有阿里的OceanBase和腾讯的CDB等等。那么Percona和MariaDB这两个主要的MySQL分支是怎么产生的呢?

    MariaDB

    起初MySQL之父Monty在1979年写下MySQL的第一行代码,后来逐渐创建起MySQL公司,后将其以10亿美金卖给Sun,结果Sun又把MySQL转手卖给Oracle,Monty愤而出走,以MySQL5.5为基础创造了MariaDB数据库,这样就诞生出了MySQL分支里知名度最高的一个衍生版。

    Percona Server

    Percona Server是MySQL咨询公司Percona发布的性能最接近MySQL企业版的MySQL产品。Percona公司在MySQL数据库优化方面做了非常多的工作,以至于Percona Server数据库是MySQL众多分支中,在高负载、高并发情况下表现非常突出,乃至阿里巴巴的OceanBase数据库都要借鉴Percona Server。

    性能接近

    其实在正常情况下,MariaDB和Percona Server的性能是差不多的,为什么是这样呢?

    MySQL 4和5使用MyISAM作为默认存储引擎。从MySQL 5.5开始,就将默认存储引擎从MyISAM更改为InnoDB。这是因为长期以来MyISAM没有提供事务支持,使得MySQL游离在数据强一致性的门槛之外,正是InnoDB的加入,在使得MySQL从Oracle市场份额中分一杯羹。

    我们先看看MariaDB使用的存储引擎。因为版权的原因,MariaDB一开始就放弃了InnoDB这个让MySQL大放异彩的存储引擎,最终选择了XtraDB引擎作为InnoDB的替代。

    一方面,XtraDB引擎能做到的向下兼容,创建数据表的时候,InnoDB引擎会自动被替换成XtraDB引擎,用户和客户端根本感觉不到MariaDB和MySQL的区别。另外一方面,XtraDB的对事务的良好支持,让用户也感受不到XtraDB和InnoDB的区别。另外,在多核CPU和大内存上,XtraDB性能比InnoDB更好。

    说到这里还要补充一句,XtraDB引擎是Percona公司开发设计的,与MySQL5.1内置的InnoDB相比,单位时间执行事务数量是后者的2.7倍。而且在Percona Server上面默认使用的也是XtraDB引擎。所以说MariaDB和Percona Server在正常情况下的性能基本持平。但是在高并发和高负载的条件下,Percona Server的表现更好一些。

    部署平台

    MariaDB的跨平台性更好一些,支持Windows平台和Linux平台,但是不支持MacOS平台。如果在MacOS平台上安装MacOS需要先安装Brew。

    Percona Server不支持跨平台,只能在Linux平台安装

    兼容性

    MariaDB与Percona Server各自选择了对MySQL兼容的方式。MariaDB的起点是MySQL5.5,然后对MySQL改造,并且与MySQL5.6以上版本存在很大的差别。比如在单表保存一对多关系数据上面,MariaDB选择了DynamicColume(动态列)实现方式,而MySQL选择的是JSON方式。虽然都是一对多关系,但是MariaDB动态列的方式使用非常繁琐,也不支持数组格式,相反MySQL的实现就好很多。另外MariaDB的动态不支持索引,因此说按照动态列中的字段查找数据速度会很慢,而MySQL支持JSON索引,查询速度会快很多。

    Percona Server与MariaDB不同,它是先兼容MySQL然后再进行优化,所以用户可以很容易的从MySQL迁移到Percona Server上面,而不用去考虑兼容性的问题。

    选择

    选择是痛苦的事情,对于MariaDB和Percona Server两个数据库,各大公司也存在分歧,淘宝使用的是Percona Server,而Google和Facebook则站在了MariaDB这边。从中我们可以看出,注重数据库稳定性和可靠性的企业都会选择Percona Server,包括利用Percona Server组建的Percona XtraDB Cluster集群,都体现的严格的数据读写一致性,这对于商业系统来说极为重要,读写速度来说仅仅是第二位的。那些数据价值低,注重数据读写速度的企业,更喜欢使用MariaDB,因为用MariaDB组建Replication集群,在保存SEO搜索、论坛帖子、新闻资讯、社交信息上速度更快。

    说到这里,选择MariaDB还是Percona Server,唯一衡量的标志为是否存储商业数据。


    链接:http://www.imooc.com/article/30432

  • 相关阅读:
    codeforces 980A Links and Pearls
    zoj 3640 Help Me Escape
    sgu 495 Kids and Prizes
    poj 3071 Football
    hdu 3853 LOOPS
    hdu 4035 Maze
    hdu 4405 Aeroplane chess
    poj 2096 Collecting Bugs
    scu 4444 Travel
    zoj 3870 Team Formation
  • 原文地址:https://www.cnblogs.com/wish123/p/11270851.html
Copyright © 2011-2022 走看看