Mysql不同发行版特性及升级步骤

Mysql发行版
  • Mysql社区版
  • Mysql企业版
  • Percona Mysql
  • MariaDB

基本上就这4种发行版,Mysql社区版和企业版都是官方发行的版本,更新速度比较快,其他两种是基于Mysql官方版的,所以更新会落后与官方发行版。

Mysql社区版
我们开发中常用的版本,目前已经更新到8.0了。之前的5.6、5.7版本很多公司都还在使用。5.7之后就直接升级到8.0版本了。

5.6 - > 5.7

1
主要提高了主从模式下,多线程复制功能,支持了并发。同时也增加了一些性能指标的监控

5.7 - > 8.0

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
1.提高了主从模式下,对json字段的复制性能,之前是全量同步,现在支持只同步修改的部分。

2.之前创建innodb引擎表时,会创建一个.frm文件(存放创建表的语句),8.0之后就没有了。不再支持myisam引擎,
只支持innodb引擎,数据存放在.idb中使用的独立的表空间。

3.支持定义资源组, `create resource group` 用来控制线程的优先级和使用的CPU资源。
-- 以后在写一篇,挖坑

4.支持不可见索引(索引不会被优化器处理)和降序索引,支持数据直方图

5.支持窗口函数(对于每个组返回多行,而聚合函数对于每个组只返回一行)
-- 以后在写一篇,挖坑

6.在线修改环境变量,不会导致重置后配置丢失

7.安全性上,密码动态加密,密码历史记录,限制使用次数等

8.innodb性能大幅度增强

Percona Mysql

1
2
在官方版本的基础上,提高了高负载情况下innodb的性能,
也包含了社区版没有,企业版才有的监控、审计日志等的功能。PerconaTookit可以支持在线地修改表结构。

MariaDB

1
GTID(主从同步时的事务id)生成规则与其他两兄弟是不一样的,所以在开发中不要混用不同的发行版

升级数据库

1.升级前要了解升级带来的益处,能够解决业务上的什么痛点

2.可能影响哪些业务,带来什么风险

  • 比如升级后jdbc不兼容
  • SQL mode 变化导致不能正确执行SQL
  • 5.6版本默认打开了PERFORMANCE_SCHEMA(收集数据库服务器性能参数),这个在5.5是关闭的,会影响一部分性能。

3.制定升级方案

  • 升级前备份
  • 关闭老版本MYSQL服务
  • 替换MYSQL二进制文件
  • 执行mysql upgrade命令来检查数据是否兼容
  • 检查业务

  • 4.制定回滚方案
  • 回滚步骤
  • 检查