这是一个适合Oracle DBA的文档,共200多页。如果你对Oracle非常熟悉,看这个文档也非常简单。点击此处下载。如需word版本,请扫描首页二维码,得到邮箱地址,然后发邮件给我即可。
开始扯淡
MySQL各个版本的官方的文档都可以从下面的链接找到。有时间的话,建议从白皮书看起。本文只是从Oracle DBA的角度来写的,纯属扯淡。https://docs.oracle.com/cd/E17952_01/index.html
MySQL虽然在互联网公司用的还不错,有些功能比oracle要方便,比如组复制(MySQL Group Replication)。但和Oracle比起来,整体还是有很多不足。毕竟代码在哪放着呢。Oracle数据库是通过C语言实现的,有2500万行代码,并且当前版本的功能可以兼容之前任何一个版本的功能。MySQL在每个版本都有改进,在跨版本兼容性方面还是不怎么好。更别说数据库的备份了。
关于MySQL
MySQL原本是一个开放源代码的关系数据库管理系统(DBMS),原开发者为瑞典的MySQL AB公司,该公司于2008年被Sun收购。2009年,甲骨文公司(Oracle)收购Sun公司,MySQL成为Oracle旗下产品。随着人们对数据一致性的要求不断的提高,越来越多的方法被尝试用来解决分布式数据一致性的问题,如MySQL自身的优化、MySQL集群架构的优化、Paxos、Raft、2PC算法的引入等等。
而使用分布式算法用来解决MySQL数据库数据一致性的问题的方法,也越来越被人们所接受,一系列成熟的产品如PhxSQL、MariaDB Galera Cluster、Percona XtraDB Cluster等越来越多的被大规模使用。
随着官方MySQL Group Replication正式发布,使用分布式协议来解决数据一致性问题已成为主流的方向。MySQL高可用问题被更好的支持,这个以后会成为MySQL高可用的标准,使用的企业也会越来越多。
MySQL在过去由于性能高、成本低、可靠性好,已经成为最流行的开源数据库,因此被广泛地应用在Internet上的中小型网站中。是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS (Relational Database Management System:关系数据库管理系统) 应用软件之一。随着MySQL的不断成熟,它也逐渐用于更多大规模网站和应用,比如维基百科、Google和Facebook等网站。
MariaDB最大的问题是没有解决存储引擎的问题。Oracle早年收购InnoDB引擎,Percona收购TokuDB引擎,可以看出存储结构对于数据库的重要性。MariaDB 10.X目前集成的5.6 InnoDB存储引擎的版本,以后整合InnoDB引擎的难度可能会越来越大。
后来,腾讯公司开源了PhxSQL,这是基于Paxos解决方案,PhxSQL通过Paxos实现Log Replication,Leader Election解决了一致性和选主问题。
Reference
https://dev.mysql.com/doc/refman/8.0/en/
https://dev.mysql.com/doc/internals/en/
https://dev.mysql.com/
https://dev.mysql.com/doc/