为了账号安全,请及时绑定邮箱和手机立即绑定
编程百科手册

扫一扫 手机阅读

¥ 35.00 原价¥ 46.00
限时优惠
课程目录已更新11节
全部 试读

互联网刚开始进入国内时,使用比较多的都是昂贵的商业数据库。但在最近几年,一批开源数据库开始慢慢成为主流,其中最为突出的则是 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 语句进行优化的综合型数据库使用者,进阶自己在数据库领域的相关技能。

讲师马听,一线 DBA (数据工程师)老兵。擅长 MySQL 优化, 技术公众号 《MySQL 数据库联盟》运营者。

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

图片描述
第一部分:SQL 优化

本部分介绍了 SQL 的常见优化方式,如 join、order by、group by、insert、count(*) 等。

第二部分:MySQL 索引

本部分主要对“某个字段加唯一索引还是普通索引?”,“某条查询某个条件字段有索引,为什么不走这个索引?”等相关问题给予解答,此外还介绍了索引的原理和联合索引的一些特性。

第三部分:MySQL 锁

本部分介绍了常见的锁场景。对于一个数据库来说,如何保证数据访问的一致性、有效性显得格外重要,因此使用者也应该去探究数据库的锁机制。

第四部分:事务

数据库正确执行的四个基本要素:

  • 原子性(Atomicity)
  • 一致性(Consistency)
  • 隔离性(Isolation)
  • 持久性(Durability)

本部分将进行详细描述 MySQL 是通过哪种机制去实现满足这四个数据库正确执行的基本要素。

第五部分:MySQL 的一些其它相关经验

本部分主要讨论讲师个人在使用 MySQL 的过程中曾讨论过的一些重要问题,如读写分离、查询缓存、分库分表等。

课程目录已更新11节
精选留言
  • yang_绿叶

    买啦,我数据库一直就会一点增删改查什么的,弱弱的问下老师,这样能够看懂嘛!期待这次能有提高。

    讲师回答 / 马听老师

    我们这个专栏有很多地方在讲解优化前都会补充一些基础知识的,同学应该可以看懂的,当然,如果有些地方没理解或者我讲的不清楚,欢迎在留言区留言哈^^

  • 慕雪3119260

    老师,问一个问题,什么时候使用聚集索引?什么时候使用辅助索引呢?咱们课件中的查询语句,使用哪个的多呢?

    讲师回答 / 马听老师

    同学你好,好问题,InnoDB 的数据是按照主键顺序存放的,而聚集索引就是按照每张表的主键构造一颗 B+ 树,它的叶子节点存放的是整行数据。当通过辅助索引来寻找数据时,InnoDB 存储引擎会遍历辅助索引树查找到对应记录的主键,然后通过主键索引来找到对应的行数据。比如一颗高度为 3 的辅助索引树中查找数据,那需要对这颗辅助索引树遍历 3 次找到指定主键,如果聚集索引树的高度也为 3,那么还需要对聚集索引树进行 3 次查找,最终找到一个完整的行数据所在的页,因此获取数据一共需要6 次逻辑 IO 访问。因此如果你知道要查的某一行数据的主键,就最好用主键(聚集索引)查询。课件中普通索引用的多,因为工作中大多数使用普通索引做为条件查的。当然具体区别在第10节有详细讲解。

  • 慕仙6214147

    老师您好,unique_subquery和index_subquery,基于老师创建的两个表,始终无法在explain的时候实现type为这两个值的,还请老师指导一下实现这两个属性值的sql语句。

    讲师回答 / 马听老师

    你好,基于本节的两张表,两种类型对应的SQL语句例子如下: unique_subquery:explain select * from t1 where a in (select id from t2 where t1.b=t2.b) or a=10; index_subquery:explain select * from t1 where a in (select a from t2 where t1.b=t2.b) or a=10;

更多精选留言

适合人群
  • 开发工程师
  • 运维工程师
  • MySQL DBA
  • 架构师
  • 其他 MySQL 爱好者
购买须知
  1. 本专栏为图文形式内容服务,共计 32 小节,上线时间为 2019 年 7 月 30 日,预计 2019 年 10 月 10 日更新完成;
  2. 本专栏更新时间为每周二、四更新 1 篇,形式为图文;
  3. 订阅成功后,用户即可通过慕课网 PC 端、App 端、WAP 端享有永久阅读的权限;
  4. 慕课专栏为虚拟内容服务,订阅成功后概不退款;
  5. 在专栏阅读过程中,如有任何问题,请邮件联系kf@imooc.com;
  6. 慕课专栏版权归本平台所有,任何机构、媒体、网站或个人未经本网协议授权不得转载、链接、转贴或以其他方式复制发布/发表,违者将依法追究责任。
造烛求明,读书求理
扫码关注慕课网服务号
干货分享
定期活动
课程优惠
专栏福利
官方优惠福利活动一手掌握,关注慕课网(ID:imooc-com),和30万+程序员一起成长!

本专栏知识点梳理

1.专栏阅读需要具备一定的MySQL基础语法知识,可参考:

2.在此专栏基础上,如果您想进阶学习MySQL源码分析相关知识,可参考:

下载慕课网APP

更好的体验,让阅读随处可得

扫描二维码,下载慕课网APP
意见反馈 邀请有奖 帮助中心 APP下载
官方微信