提到 MySQL, 我们不得不说说其两大重要的时间点:
-
2008 年 Sun 收购 MySQL AB
-
2010 年 Oracle 收购 Sun
在 MySQL 两次易主的过程中,开发者们普遍担心某一天 MySQL 会成为一个非开源的收费版本,所以在此期间出现了很多类 MySQL 的 RDBMS。然而到目前为止,主要有两个久经考验的 RDBMS 分别为:Percona server for MySQL 和 MariaDB。今天我们主要来介绍下Percona server for MySQL。
发展史
-
2008.12.16 年第一个版本 Percona Server 1.0.2 正式 release
-
2018.03.31 年最新的版本 Percona Server 5.7.22-22 正式 release
服务特性
Percona 其实是基于 MySQL 的一个分支开发的,然后做了一系列的功能优化和完善,主要包括:
-
完全兼容 MySQL 协议
-
Bug 修复
-
性能优化
-
支持 MySQL 社区版和企业版功能特性
-
丰富的性能诊断工具
我们来详细介绍下其中几项功能优化:
MySQL 企业版功能特性
Threadpool
MySQL 针对每个连接请求会单独分配一个线程。一旦连接的数量超过一定的阈值,性能反而会直线下降。
使用 Threadpool(线程池)技术,在有大量客户端短事务连接的场景下,仍然可以保持较少的线程数量,从而减少上下文切换和热锁的争用,从而保证服务性能不受连接数影响。
我们来看下有无 Threadpool 的性能差异:
IO bound: sysbench dataset 32 tables/12M rows each (~100GB), InnoDB buffer pool=25GB
In-memory/CPU bound: sysbench dataset 32 tables/12M rows each (~100GB), InnoDB buffer pool=100GB
PAM Authentication
PAM(Pluggable Authentication Modules),提供了更灵活、更安全的权限配置管理插件。
丰富的性能诊断工具
更多统计信息
-
Show global status 与 show global variables 将额外统计更多信息
-
Show engine innodb status 更详细输出,比如:
-
行操作相关项:Count of RW transactions occurring inside InnoDB
-
日志相关项:Max checkpoint age, Checkpoint age target, Modified age, Checkpoint age
-
内存使用相关项:Internal Hash Tables, Buffer pool size in bytes
更强大的分析命令
show 和 explain 将输出更详细的内容,用于性能剖析。
细粒度资源使用统计
支持userstat,用于性能调优或资源控制。
更多插件
推荐直方图插件,从 SQL 执行次数和响应时间两个维度统计慢查询,量化数据库性能指标。
性能优化
XtraDB
这是 Percona 独有的,可以认为是 InnoDB 存储引擎的增强版,并且完全兼容 InnoDB。
Buffer Pool 优化
我们来看下有无 buffer pool 优化后的性能差异:
Throughput (more is better):
95% Response time (less is better):
完全兼容 MySQL 协议
如果你原先使用的是 MySQL 服务作为你的数据库存储服务,由于 Percona 是完全兼容 MySQL 协议的,所以从 MySQL 服务切换到 Percona 服务会是一个很平滑过程,对于业务侧而言基本可以理解为无改动。
喜大普奔
近日,京东云正式推出了云数据库 Percona 对外服务。
京东云数据库 Percona 是京东云基于开源的 Percona 5.7 版本构建的稳定可靠的数据库服务。相比传统数据库,云数据库 Percona 易于部署、管理和扩展,默认支持主从热备架构,提供数据备份、故障恢复、监控等全套解决方案,彻底解决数据库运维的烦恼。
同时,京东云数据库 Percona 通过使用网络隔离、限制外网直接访问等方式,为数据库服务提供了高级别的安全性需求。