写点什么

关于 MySQL 数据库学习的书籍有哪些值得推荐?

  • 2022 年 4 月 13 日
  • 本文字数:2134 字

    阅读完需:约 7 分钟

MySQL 调优对于很多程序员而言,都是一个非常棘手的问题,多数情况都是因为对数据库出现问题的情况和处理思路不清晰。在进行 MySQL 的优化之前必须要了解的就是 MySQL 的查询过程,很多的查询优化工作实际上就是遵循一些原则让 MySQL 的优化器能够按照预想的合理方式运行而已。

就在昨天我在百忙之中抽出空余时间面试了个腾讯 30k 出来的,我开口就是:MYSQL 性能调优如何入手?他的回答的:基础优化、优化的哲学、优化需求、优化的思路、存储引擎层、数据库优化、等等细节,好吧我承认我败了。

但是我严重怀疑他是做了准备而来的,不然没有什么人可以记得这么清楚有条理,果不其然,在他入职之后说出了实情;

在他们团队内部有一本多名大佬推荐的【MySQL 性能优化和高可用架构实践】文档



好了话不多说,小编直接分享出来,学完你也可以在简历上写“精通 MySQL 性能优化”,同时也希望各位可以多吊打一下其他面试官

篇幅原因,仅展示问题,以下面试题详细答案,需要完整版的点击此处即可免费获取全部。

目录

  • InnoDB 存储引整体系结构

  • MySQL 事务和锁

  • SLQ 语言性能优化



  • MySQL 服务器优化

  • MySQL 性能监控

  • MySQL 主从复制详解

  • PXC 高可用解决方案



  • 基于 MHA 实现的 MySQL.自动故障转移集群

  • MySQL Group Replication

  • Keepalived+双主复制的高可用架构

  • 数据库分库分表与中间件介绍

  • Mycat 中间件详解



总览内容

MySQL 架构介绍



目前业界的 MySQL 主流分支版本有 Oracle 官方版本的 MySQL、


Percona Server、MariaDB。接下来看一下各个分支的特点。



 InnoDB 存储引擎体系结构



从 MySQL 5.5 版本开始,InnoDB 是默认的表存储引擎,特点是支持事务、支持数据行锁、支


持多版本并发 MVCC、支持外键。InnoDB 存储引擎的体系结构如图 2-1 所示,包括内存池、后台线程和底层的数据文件




MySQL 事务和锁



MySQL 事务隔离级别

事务还会通过锁机制满足隔离性。在 InnoDB 存储引擎中,有不同的隔离级别,它们有着不同的隔离性。



锁等待

锁等待是指一个事务过程中产生的锁,其他事务需要等待上一个事务释放它的锁才能占用该资源。如果该事务一直不释放,就需要持续等待下去,直到超过了锁等待时间,会报一个等待超时的错误。在 MySQL 中通过 innodb_lock_wait_timeout 参数来控制锁等待时间,单位是秒。如图 3-9 所示,可以通过语句 show variables like '%innodb_lock_wait%'来查看锁等待超时时间。



SQL 语句性能优化



说起 SQL 语句性能优化,相信所有人都了解一些简单的技巧:不使用 SELECT *、不使用 NULL 字段、合理地使用索引、为字段选择恰当的数据类型等。你是否真的理解这些优化技巧?是否理解其背后的工作原理?本章从理论和实战角度出发,讲解这些优化建议背后的原理。



创建高性能索引

索引是提高 MySQL 查询性能的一个重要途径。应当尽量避免事后才想起添加索引,因为事后可能需要监控大量的 SQL 才能定位到问题所在,而且增加索引的时间肯定是远大于初始增加索引所需要的时间。



MySQL 服务器全面优化


篇幅原因,仅展示问题,以下面试题详细答案,需要完整版的点击此处即可免费获取全部。


绝大多数使用 Linux 操作系统的大中型互联网网站都在使用 MySQL 作为后端的数据库服务,所以如何优化 MySQL 服务器是我们要研究的。现在 MySQL 5.7 版本对于多核 CPU、固态硬盘、锁机制有着更好的优化。另外,MySQL 5.7 版本对优化器提升了很多,比如 MySQL 5.7 的 in 语句子查询能够使用 index range scan 方式,Union all 不再产生临时表,排序效率上也有所提升。我们从 MySQL 5.7 版本的存储引擎增强,硬件、操作系统、配置参数优化、设计规范优化几个层面来全面优化 MySQL 服务器



MySQL 性能监控



MySQL 被越来越多的企业接受。随着企业发展,MySQL 存储数据日益膨胀,性能分析、监控预警显得非常重要。在某些场景下,通常会部署一套 MySQL 监控/图形工具,然后根据 MySQL 监控面板提供的信息来执行进一步的调优。




MySQL 主从复制详解



MySQL 的主从复制功能是构建基于 MySQL 数据库的高可用、高性能的应用程序基础,既能用于分担主数据库的读负载,也为高可用 HA 等工作提供了更多的支持。主从复制是指数据可以从一个 MySQL 数据库服务器主节点复制到另外一个或多个 MySQL 数据库服务器从节点。主从复制可以用于数据实时备份、读写分离、高可用 HA 等企业场景中。




PXC 高可用解决方案





基于 MHA 实现的 MySQL 自动故障转移集群



MHA 是一套优秀的作为 MySQL 高可用性环境下故障切换和主从提升的高可用软件。由两部分组成:MHAManager(管理节点)和 MHA Node(数据节点),如图 9-1 所示。MHA Manager 可以独立部署在一台独立的机器上管理多个 master-slave 主从复制集群,也可以部署在一台 slave 从节点上。



MySQL Group Replication



长期以来 MySQL 官方都缺少原生的 MySQL 集群多活且能提供强一致性的解决方案,所以第三方公司基于 Galera 协议的 Percona XtraDB Cluster(PXC)积累了很多客户案例。 2016 年 12 月 12 日 Oracle 发布了 MySQL Group Replication 的首个 GA 版本,并且提供了自家对比 Galera 的性能测试。MGR 作为官方力推的明星产品,的确具备了与市场老牌产品(如 PXC)竞争的资格。MGR 是基于 Paxos 分布式一致性协议的高可用解决方案,完美地解决了 MySQL 在一致性与高可用方面的缺陷。未来 MGR 方案大概率将成为银行、保险、证券等金融业务的高可用和容灾解决方案。




Keepalived+双主复制的高可用架构




篇幅原因,仅展示问题,以下面试题详细答案

获取方式

需要完整版的点击此处即可免费获取全部。

用户头像

只要码不死,就往死里码 2021.11.19 加入

还未添加个人简介

评论

发布
暂无评论
关于 MySQL 数据库学习的书籍有哪些值得推荐?_MySQL_程序员万金游_InfoQ写作平台