提到 MySQL 大家脑子里首先出现的肯定是 MySQL 优化,我们都知道 mysql 数据库优化是多方面的,原则是减少系统的瓶颈,减少资源的占用,增加系统反应的速度。一般我们是从 MySQL 5.7 版本的存储引擎增强,硬件、操作系统、配置参数优化、设计规范优化几个层面来全面优化 MySQL 服务器。
但对于一个企业级的系统来说,优化 MySQL 服务器固然重要,但数据库系统的可用性也是不能抛开的。数据库系统一旦出现问题无法提供服务,所有系统都可能无法继续工作,而不像软件中部分系统出现问题可能影响的仅仅只是某个功能无法继续服务。所以如何掌握高性能高可用 MySQL 调优方法,探索低成本数据库系统构建之道,已经是我们每一位 IT 从业人员必须要直面的问题了。
相对于成熟的商业数据库,MySQL 缺乏高质量的技术文档,市面上高可用架构设计和性能优化方面的图书还是比较少的,但我前段时间从腾讯的一位老哥拿到的实战文档彻底颠覆了我对 MySQL 的认知,差距真的不止一点点!
不多 bb,来看内容
由于篇幅限制不能把所有内容展示出来,如果有朋友需要完整高清版 PDF 只需要点赞+关注小编,查看文末即可获取!
MySQL 架构介绍
MySQL 的架构可以在多种不同的场景中应用,Facebook、Twitter、Google、腾讯、阿里等都在大量使用 MySQL 存储海量数据。
MySQL 逻辑架构
lnnoDB 存储引擎体系结构
InnoDB 存储引擎有各种缓冲池(Euffer Pol),这些缓冲块组成了一个大的 InnoB 存储引擎内存池,主要负责的工作是:维护所有进程/线程需要访问的多个内部数据结构;缓存磁盘上的数据,方便快速读取,同时在对磁盘文件修改之前进行缓存;重做日志缓存等。
InnoDB 后台线程
MySQL 事务和锁
InnoDB 数据库引擎支持事务。事务具有 ACID(原子性、一致性、隔离性和持久性),还有不同的隔离级别‘具有不同的隔离性)。事务的隔离级别还是是通过锁的机制来实现的。
MySQL 事务概述
InnoDB 的锁机制介绍
SQL 语句性能优化
说起 SQL 语句性能优化,相信所有人都了解一些简单的技巧:但是否真的理解这些优化技巧?是否理解其背后的工作原理?却不为人知,这部分就从理论和实战角度出发,讲解这些优化建议背后的原理。
MySQL 查询过程
创建高性能索引
MySQL 服务器全面优化
这一部分从 MySQL5.7 版本的存储引擎增强,硬件、操作系统、配置参数优化、设计规范优化几个层面来全面优化 MySQL 服务器。
硬件层面优化
MySQL 配置参数优化
MySQL 性能监控
随着企业发展,MySQL 存储数据日益膨胀,性能分析、监控预警显特非常重要。在某些场景下,通常会部署一套 MySQL 监控/图形工具,然后根据 MySQL 监控面板提供的信息来执行进一步的调优。
Lepus 数据库监控系统实战
MySQL 主从复制详解
MySQL 的主从复制功能是构建基于 MySQL 数据库的高可用、高性能的应用程序基础,既能用于分担主数据库的读负载,也为高可用 HA 等工作提供了更多的支持。
主从复制的概念和用途
主从复制的重点参数解析
主从延迟解决方案和并行复制
PXC 高可用解决方案
PXC 是基于 Galera 协议的 MySQL 高可用性集群架构,集成了 Percona Server 和 PerconaXtraBackup,同时采用了 Codership Galera 库。Percona Xtradb Cluster 在原 MySQL 代码上通过 Galera 包将不同的 MySQL 实例连接起来,实现了 multi-master 的集群架构。它可以实现多个 MySQL 节点间的数据同步复制
PXC 的实现原理
PXC 集群部署实战
基于 MHA 实现的 MySQL 自动故障转移集群
MHA 是由日本的一位工程师采用 Perl 语言编写的一个脚本管理工具,是一款开源的 MySQL 高可用解决方案软件,能在 MySQL 主从复制的基础上实现自动化主服务器故障转移,目前在 MySQL 高可用方面是一个相对成熟的解决方案。
MHA 简介
MHA 集群部署实战
MySQL Group Replication
MGR 被认为是继 Oracle Database RAC 之后又一个“真正”的集群,也是 MySQL 官方基于组复制概念并充分参考 MarialB Galera Cluster 和 Percona XtralR Cluster 结合面来的新的高可用集群架构。
MGR 基本原理
MGR 的主节点故障无感知切换
Keepalived+双主复制的高可用架构
双主复制配合 Keepalived 这种 MySQL 高可用架构设计也是基于 MySQL 的主从复制原理,这套 MySQL 双主复制+Keepalived 架构其实可以适用于各种业务,是一种简单、便捷的高可用方案。
Keepalived+双主架构介绍
数据库分库分表与中间件介绍
大型网站用户数和数据库规模急剧上升,这是需要对数据库实施分库分表即 Sharding 改造来应对海量数据和高并发对数据库的冲击,与此同时,支持分库分表并且对业务开发透明的数据库中间件也大行其道。
分库分表带来的影响
常见的分库分表中间件介绍
Mycat 中间件详解
由于真正的数据库需要存储引擎,而 Mycat 并没有存储引擎,因此它并不是完全意义上的分布式数据库系统,可以更贴切地说成是数据库的中间件,就是介于数据库与应用之间进行数据处理与交互的中间服务。
Mycat 核心概念
Mycat 分库分表实战
Mycat 读写分离实战
由于文章篇幅到这里就很长了,就只能这样展示出来了,我也是看了之后才知道就一份文档还真就能把 MySQl 性能优化跟高可用讲的明明白白!
如果有朋友需要完整高清版 PDF 只需要点赞+收藏,关注我之后直接扫下方二维码即可获取!