课程亮点

  • 实际案例帮助理解多种场景下 SQL 的优化技巧与原理
  • 精心绘制原理图辅助深入理解 B+ 树索引原理
  • 掌握在 MySQL 的锁机制下如何减少锁冲突、提高并发的相关技术
  • 具备高效事务系统的实现能力
  • 讲师的实际工作经验总结与干货分享
  • 每个小节搭配对应讨论题目,帮助深入理解学习成果

    课程介绍

    互联网刚开始进入国内时,使用比较多的都是昂贵的商业数据库。但在最近几年,一批开源数据库开始慢慢成为主流,其中最为突出的则是 MySQL。
    根据 DB-Engines 七月份的最新统计(如下图,截图内容来源于:https://dbengines.com/en/ranking\_osvsc ), MySQL 仍然是最受欢迎的开源数据库:
    图片描述
    MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL 的 SQL “结构化查询语言”,是用于访问数据库的最常用标准化语言。MySQL 软件采用了 GPL(GNU 通用公共许可证),由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本,而选择 MySQL 作为其网站数据库。
    综上所述,MySQL 的优势如下:
    ・MySQL 是开源的,无需支付额外费用;
    ・MySQL 使用标准的 SQL 数据语言形式;
    ・MySQL 可以运行于多个系统上,并且支持多种语言,包括 C、C++、Python、Java、Perl、PHP、Eiffel、Ruby 和 Tcl 等;
    ・MySQL 对 PHP 有很好的支持,PHP 是目前最流行的 Web 开发语言;
    ・MySQL 可以定制, 采用 GPL 协议,可修改源码来开发自己的 MySQL 系统。
    从 MySQL 作为最流行的关系型数据库管理系统,以及在众多数据库中的明显优势来讲,可想而知,企业对 MySQL 的相关人才需求量是非常大的。那要怎么去学习 MySQL 呢?有很多人觉得学习 MySQL 只要学会怎么写 SQL 语句就行,这种观点其实是片面的。很多时候,等正式业务的数据量和 QPS 上来后,可能会由于部分低效率的 SQL 而拖慢整个数据库,也有可能由于事务设计不合理导致死锁,甚至可能有被 SQL 注入的风险等,所以表设计、SQL 优化、事务、锁等也必须要引起我们的重视。
    本专栏的目的不仅是一起讨论如何高效、安全地使用 MySQL,更希望大家通过专栏内容的学习,成为能够对数据库或者 SQL 语句进行优化的综合型数据库使用者,进阶自己在数据库领域的相关技能。

    本专栏分为 5 个模块,共 32 小节,课程结构与知识脉络如下:

    图片描述
    第一部分:SQL 优化
    本部分介绍了 SQL 的常见优化方式,如 join、order by、group by、insert、count (*) 等。
    第二部分:MySQL 索引
    本部分主要对 “某个字段加唯一索引还是普通索引?”,“某条查询某个条件字段有索引,为什么不走这个索引?” 等相关问题给予解答,此外还介绍了索引的原理和联合索引的一些特性。
    第三部分:MySQL 锁
    本部分介绍了常见的锁场景。对于一个数据库来说,如何保证数据访问的一致性、有效性显得格外重要,因此使用者也应该去探究数据库的锁机制。
    第四部分:事务
    数据库正确执行的四个基本要素:

  • 原子性(Atomicity)
  • 一致性(Consistency)
  • 隔离性(Isolation)
  • 持久性(Durability)
    本部分将进行详细描述 MySQL 是通过哪种机制去实现满足这四个数据库正确执行的基本要素。
    第五部分:MySQL 的一些其它相关经验
    本部分主要讨论讲师个人在使用 MySQL 的过程中曾讨论过的一些重要问题,如读写分离、查询缓存、分库分表等。
Last modification:February 4, 2021
如果觉得我的文章对你有用,请随意赞赏