暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

【数据库丨主题周】MySQL与主流分支版本简介

博文视点Broadview 2018-05-29
873


本文主要介绍MySQL 5.6和MySQL 5.7这两个Oracle公司开发的代表作品。为了让大家先对MySQL有一个基础的认识,我们先来看一看MySQL的发展历程。


1999年至2000年,Monty成立了MySQL AB这家公司。2000 年,MySQL公布了自己的源代码,并采用GPL(GNU General Public License)许可协议,正式进入开源的世界。 2001年至2007年是MySQL开源飞速发展的7年,尤其是在2005年10月发布了一个里程碑式的版本MySQL 5.0。

5.0版本中加入了存储过程、服务器端游标、触发器、视图、分布式事务(Xa transactions)、查询优化器的显著改进以及其他的一些特性。这也为MySQL 5.0之后的版本奠定了迈向高性能数据库的发展基础。2008年1月16号Sun收购了MySQL,花了10亿美元。之后不久,2009年4月20日Oracle收购了Sun公司。随之MySQL就变成了Oracle旗下的一个产品,之后就是我们所熟悉的MySQL 5.5、5.6、5.7这些版本了。

确切一点说,MySQL 5.5应该是Sun和Oracle之间的一个过渡版本,实际上MySQL 5.6才是Oracle开发的第一个版本,在MySQL 5.6的基础上,Oracle对MySQL进行了一次强悍的加工,才有了 MySQL 5.7的问世。

  • MySQL主流的分支版本

目前业界的MySQL主流分支版本有Oracle官方版本的MySQL、Percona Server、MariaDB。接下来看一下各个分支的特点。

1 . 官方版本的MySQL

目前官网最新的GA版就是MySQL 5.7,也是推荐大家在生产环境中使用的一个版本。它无论是在InnoDB存储引擎性能和功能上的提升,还是安全性上的加固、复制功能、sys schema库的增强等都改进得相当出色。目前还在开发的是MySQL 8.0,这个版本可能是MySQL数据库又一个开拓时代的开始。MySQL不像Oracle数据库的版本跳度那么大,Oracle是8i、9i、10g、11g、12c这样的一个版本迭代速度,而MySQL在大版本上一直没有什么变化。从MySQL 5.0、5.1、5.5、5.6直到目前最成熟的MySQL 5.7都基于5这个大版本,升级其小版本。所以这次研发的8.0版是一个新时代的开始,虽然MySQL 8.0在新特性上没有新元素的加入,但是它对MySQL的源代码进行了重构,最突出的一点就是对MySQL Optimizer优化器的改进,支持隐藏索引等功能。针对优化器的改进是在之前的版本中从来没有触碰过的。而且MySQL 8.0为了对优化器做更多的特性支持,还加入了性能直方图这个新的元素,让MySQL Server层和存储引擎层配合得更加紧密。MySQL 8.0之后我们就真的要和MyISAM这个存储引擎说再见了,想想这些改变就让人兴奋,就让我们一起期待着它的问世吧。

MySQL在5.1版本被Oracle收购之后,发展到今天有了突飞猛进的变化。官方版本的MySQL未来有太多值得大家期待的地方。

让我们来看一下MySQL 5.5、5.6、5.7的性能对比图,这样可以更加直观地观察到这些年的发展变化。

在OLTP只读模式下,MySQL 5.7比MySQL 5.6快近3倍的速度,MySQL 5.6比MySQL 5.5快近1.5倍的速度,而且5.7有将近100万的QPS(每秒的查询量),如图。

基准测试只读模式下的QPS显示图

在OLTP读写模式下,MySQL 5.7比MySQL 5.6快近2.5倍的速度,比MySQL 5.5快近3倍的速度,而且5.7有近60万的QPS,如图。

基准测试读写模式下的QPS显示图

2 . Percona Server

Percona Server是MySQL重要的分支之一,它基于InnoDB存储引擎的基础上,提升了性能和易管理性,最后形成了增强版的XtraDB引擎,可以用来更好地发挥服务器硬件上的性能。所以Percona Server也可以称为增强的MySQL与开源的插件(plugin)的结合。由于官方版本的MySQL在一些特性的使用上有一定的局限性,需要收费。所以Percona Server就有了一定的市场占有比例,也比较受大家的欢迎。像一些常用的工具包xtrabackup、percona-toolkit等,在生产环境中是DBA的必备武器。还有像XtraDB-Cluster这种支持多点写入的强同步高可用集群架构,真正实现实时同步的过程,解决了MySQL主从复制之间经常出现并让人头疼的延迟问题。而且Percona还收购了TokuDB公司,TokuDB存储引擎非常优秀,淘宝网、阿里云上大量在使用这款存储引擎。它支持数据压缩,支持hot scheme modification,它的高扩展性和优秀的查询插入性能都是我们喜欢它的地方。

3 . MariaDB

Mariadb是由MySQL创始人Monty创建的,是一款高度兼容的MySQL产品,主要由开源社区维护,采用GPL授权许可。Oracle把MySQL收购之后,为避免MySQL在开源粒度上的下降,MariaDB由此而生。它不仅仅是MySQL的一个替代品,还创新与提高了MySQL原有的技术。既包含了Percona的XtraDB存储引擎,还包含TokuDB存储引擎、Spider水平分片存储引擎等多种存储引擎,并且还有一些复制功能上的新特性,比如基于表的并行复制、Multi-source Replication多源复制、Galera Cluster集群。还有比较有意思的一点就是MariaDB有一套Java的管理系统,可以通过投票机制来决定哪些特性和参数是我们需要的。

本文选自《MySQL王者晋级之路》一书。


目前大部分软件开发平台都基于Linux,很多互联网公司都把MySQL作为后端数据存储的数据库。如果把MySQL比喻成数据库界的一条巨龙,则本书涵盖的所有知识点就是这条巨龙的组成部分。

 本书深入剖析MySQL数据库体系结构,实战演练备份恢复、主从复制,详解高可用集群架构的设计与实践过程,详细梳理优化思路,展现新版本的特性,并与真实生产案例相结合,通过核心原理到“王者”实战,全面覆盖MySQL数据库的知识点。 

点击图片进入小程序参与抽奖,5月31日自动开奖。



本书目录结构

篇幅限制,完整目录请见本书。

第1部分  倔强青铜篇

第1章  MySQL简介与主流分支版本

1.1  MySQL简介

1.2  MySQL主流的分支版本

第2章  MySQL数据库的安装、启动和关闭

2.1  下载MySQL二进制软件包

2.2  安装前系统环境检测

2.3  MySQL 5.6版本的安装过程

2.4  创建密码

2.5  关闭MySQL数据库

2.6  基础数据库的名称

2.7  MySQL 5.7版本的安装

2.8  MySQL数据库root密码丢失的问题

2.9  MySQL数据库的连接方式

2.10  用户权限管理

第3章  MySQL体系结构与存储引擎

3.1  MySQL体系结构

3.2  Query Cache详解

3.3  存储引擎

3.4  InnoDB体系结构

第4章  数据库文件

4.1  参数文件

4.2  参数类型

4.3  错误日志文件(error log)

4.4  二进制日志文件(binary log)

4.5  慢查询日志(slow log)

4.6  全量日志(general log)

4.7  审计日志(audit log)

4.8  中继日志(relay log)

4.9  Pid文件

4.10  Socket文件

4.11  表结构文件

4.12  InnoDB存储引擎文件

第5章  表

5.1  整型

5.2  浮点型

5.3  时间类型

5.4  字符串类型

5.5  字符集

5.6  表碎片产生的原因

5.7  碎片计算方法及整理过程

5.8  表统计信息

5.9  统计信息的收集方法

5.10  MySQL库表常用命令总结

第6章  索引

6.1  二叉树结构

6.2  平衡二叉树结构

6.3  B-tree结构

6.4  B+tree

6.5  哈希索引

6.6  索引的总结

第7章  事务

7.1  事务的特性

7.2  事务语句

7.3  truncate和delete的区别

7.4  事务的隔离级别

7.5  细说脏读、不可重复读、幻读、可重复读现象

第8章  锁

8.1  InnoDB的锁类型

8.2  InnoDB行锁种类

8.3  锁等待和死锁

8.4  锁问题的监控

第2部分  秩序白银篇

第9章  备份恢复

9.1  MySQL的备份方式

9.2  冷备及恢复

9.3  热备及恢复

9.4  流式化备份

9.5  表空间传输

9.6  利用binlog2sql进行闪回

9.7  binlog server

9.8  总结

第3部分  荣耀黄金篇

第10章  主从复制概述

10.1  常见的几种主从架构模式图

10.2  主从复制功能

10.3  主从复制原理

10.4  复制中的重点参数详解

第11章  复制原理及实战演练

11.1  异步复制

11.2  主从复制故障处理

11.3  半同步复制

11.4  半同步复制和异步复制模式的切换

11.5  GTID 复制

11.6  多源复制

11.7  主从延迟的解决方案及并行复制

11.8  主从复制的数据校验

11.9  总结

第4部分  尊贵铂金篇

第12章  MHA

12.1  MHA简介

12.2  实战演练

第13章  Keepalived+双主架构

13.1  Keepalived介绍

13.2  集群搭建思路及建议

13.3  实验部署演练

第14章  PXC

14.1  PXC原理

14.2  PXC架构的优缺点

14.3  PXC中重要概念和重点参数

14.4  PXC架构搭建实战

14.5  PXC集群状态的监控

14.6  从节点在线转化为PXC节点

第15章  ProxySQL

15.1  ProxySQL的安装与启动

15.2  配置ProxySQL监控

15.3  ProxySQL的多层配置系统

15.4  配置ProxySQL主从分组信息

15.5  配置读写分离策略

15.6  测试读写分离

15.7  总结

第5部分  永恒钻石篇

第16章  MySQL 5.7新特性

16.1  InnoDB存储引擎的增强

16.2  其他方面的增强

第17章  MySQL全面优化

17.1  硬件优化

17.2  配置参数优化

17.3  从Linux操作系统层面来谈对MySQL的优化

17.4  表设计及其他优化

17.5  整体管理优化总结

第6部分  至尊星耀篇

第18章  Lepus之MySQL监控

18.1  Lepus简介

18.2  实战部署

18.3  监控MySQL服务器

18.4  部署Lepus慢查询分析平台实战

18.5  监控总结

第19章  MySQL版本升级

19.1  升级方式

19.2  实战演练

第7部分  最强王者篇

第20章  MySQL面试宝典

20.1  自我介绍

20.2  技术问答

了解本书详情请点击阅读原文



 

博文视点

您阅读的专业智库

喜欢请分享至朋友圈

了解更多本书详情请点击阅读原文

长按二维码轻松关注


点击阅读原文,即可快速抵达本书详情页!

文章转载自博文视点Broadview,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论