MySql 进阶教程

Mysql logo

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。

MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。

由于其社区版的性能卓越,搭配 PHP 和 Apache 可组成良好的开发环境。

基于 MySQL 官方版本,本系列共分为 《MySQL 教程》、以及《MySQL 进阶教程》两门教程,本章节教程是《MySQL 进阶教程》。

这两门教程的不同之处

  • MySQL 入门教程主要面向 MySQL 的初学者,介绍了 MySQL 的发展史、MySQL 的安装与配置、MySQL 的基础维护、MySQL 支持的数据类型、SQL 基础、常用函数等内容。如果你对 MySQL 基础掌握的不是很牢固的话建议你先去学习基础课程之后再来学习这门进阶教程。

  • 而这门进阶教程主要面向 MySQL 的 DBA 和开发人员,内容包括 MySQL 架构组成、MySQL 存储引擎、索引、锁、MySQL 事务、备份与恢复、MySQL 复制、高可用架构、监控、优化等内容。

本教程内容实用丰富,通俗易懂,讲解由浅入深,还结合大量来自一线的工作案例,拥有较高的实战性和可操作性。本教程适合 MySQL 初学者、数据库管理人员、数据库开发人员及其他数据库从业人员阅读,同时也适合作为相关数据库培训机构的教材。

1. 课程设计

本课程采用理论加实践的方式编写,以 MySQL 架构组成、存储引擎、索引、事务等数据库高频知识点为主线,从这些知识点的概念、机制、原理,再加上来自一线 DBA 的实践经验,让读者可以从点到线,到面,形成 MySQL 的知识网络。

2. 课程目录

本课程共 10 章 30 小节,具体章节安排如下:

  • MySQL 的架构组成:本章节从 MySQL 的逻辑架构讲起,到 MySQL 的物理组成。通过本章节的学习你会对 MySQL 的底层逻辑架构有一个比较清楚的认知,也会了解到 MySQL 的底层是如何具体的执行一条 SQL 语句的;

  • MySQL 的存储引擎:MySQL 中包含了很多中存储引擎,每一种存储引擎所支持的机制也不尽相同。这一章节会对 MySQL 的各种存储引擎以及它们之间的差别做出详细讲解,并通过实际案例的讲解让你知道该如何去选择存储引擎;

  • MySQL 的索引:索引的目的是提高 MySQL 的查询效率,设计优秀的索引可以大大提高 MySQL 的执行效率,在这一章节我们会对常见的索引模型,以及回表、覆盖索引、最左前缀原则等等索引细节进行讲解,并通过实际案例来教你根据实际业务合理的设计索引;

  • MySQL 的事务:事务的重要性我想已经不言而喻了,你说你会 MySQL ,但别人问你事务你却支支吾吾的,别人也不会相信啊。别着急,本章节我们会对 MySQL 的事务进行详细讲解,让你知道 MySQL 为什么需要事务,以及事务是如何开启的?事务的隔离方式是什么?让你在和别人聊起事务的时候言之有物;

  • MySQL 的锁:当多个事务或者进程同时访问一个相同的资源时,为了保证数据的一致性,就需要用到 MySQL 的锁机制。MySQL 把锁分为了三个层级,分别是:全局锁,表锁,行锁。这一章节我们会对这三种锁进行剖析,你会知道这三种锁的机制和它们之间的差别以及在不同的存储引擎下使用锁的不同;

  • MySQL 的备份与恢复:在当下这个数据为王的时代,数据备份和恢复应该是每一个公司业务的重中之重,数据备份和恢复是每一位工程师都应该了解或掌握的技术。本章节我们会详细讲解 MySQL 的备份和恢复机制,并通过实际案例教你如何合理的设计备份与恢复的策略;

  • MySQL 的主从复制:MySQL 的主从复制指的是数据可以从一个 MySQL 数据库服务器主节点复制到一个或多个从节点,之所以这么设计是因为:在实际开发中如果因为某一操作造成数据被锁,无法进行数据读取那么就会造成业务服务中断,这是很严重的事故。使用主从复制,让主库负责写,从库负责读,泾渭分明的操作就能保证及时主库被锁表,也不会出现数据无法读取的情况。本章节我们就会学习 MySQL 的主从复制技术;

  • MySQL 的监控:这一章节我们会讲解 MySQL 的基础监控机制,性能监控机制。并介绍两个开源的监控工具:Zabbix 和 PMM;

  • MySQL 的高可用:高可用是每一个应用都应该追求的目标,自然 MySQL 也不例外。本章节我们会介绍 MySQL 常见的高可用架构,并通过实际案例来演练如何进行高可用架构的选型;

  • MySQL 的优化:MySQL 的优化是一个老生常谈的话题了,而且面试的时候也一定会问。MySQL 的优化大致分为两个部分:MySQL Server 的优化和 SQL 语句的优化。这一章节我们会揭开“优化”的神秘面纱,让它不再这么高大上;

  • MySQL 异常诊断:作为一个合格的 DBA 工程师,我们要像医生对人体的了解一样去了解 MySQL,更应该及时的发现 MySQL 的“病痛”,准确的定位“病灶”的位置,合理的使用“药物”来让 MySQL 痊愈。这一章我们会通过实际案例对 MySQL 的异常发现、定位、解决这一流程进行复刻,让你成为合格的 “MySQL 外科医生”。

3. 学习建议

每天抽 1-2 个小时学习,每周学习五小节课程,大概六周可以完成本课程的学习。

每节课程都有相关的实操练习,建议亲自搭建实验环境并完成练习,加深对知识点的理解。

4. 课程获益

通过这门课程的学习你将收获:

  • 掌握 MySQL 的底层运行机制;

  • 掌握 MySQL 的一般优化思路;

  • 认识 MySQL 的架构、存储引擎、事务、索引等知识点,并掌握其原理;

  • 掌握贴近企业生产使用的 MySQL 技能,提升工作和面试的竞争力。