MySQL

提到MySQL大家脑子里首先出现的肯定是MySQL优化,我们都知道mysql数据库优化是多方面的,原则是减少系统的瓶颈,减少资源的占用,增加系统反应的速度。一般我们是从MySQL 5.7版本的存储引擎增强,硬件、操作系统、配置参数优化、设计规范优化几个层面来全面优化MySQL服务器。

但对于一个企业级的系统来说,优化MySQL服务器固然重要,但数据库系统的可用性也是不能抛开的。数据库系统一旦出现问题无法提供服务,所有系统都可能无法继续工作,而不像软件中部分系统出现问题可能影响的仅仅只是某个功能无法继续服务。所以如何掌握高性能高可用MySQL调优方法,探索低成本数据库系统构建之道,已经是我们每一位IT从业人员必须要直面的问题了。

如何提升高可用架构设计和性能优化技能?

相对于成熟的商业数据库,MySQL缺乏高质量的技术文档,市面上高可用架构设计和性能优化方面的图书还是比较少的,但我前段时间从腾讯的一位老哥拿到的实战文档彻底颠覆了我对MySQL的认知,差距真的不止一点点!

不多bb,来看内容

由于篇幅限制不能把所有内容展示出来,需要完整高清版PDF只需要点赞+收藏,关注我之后直接添加小助理vx:bjmsb2020 即可获取!

腾讯MySQL实战宝典

  • 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只需要点赞+转发,关注我之后直接添加小助理vx:bjmsb2020 即可获取!