之前写过不少MySQL相关的文章:
沈老师,你是怎么学习MySQL相关知识的?
吹流弊的说法是,我只信MySQL官网。
实事求是来说,看官网,我也是被逼无奈。
一来,中文资料平均有1-2年延时;
二来,很多信息,各个地方说的还都不一样,不知道信谁;
三来,不知道要系统性学哪些;
于是,就啃一了个大而全的官网。
沈老师,我是一个普通开发者,要学哪些MySQL知识呢?
MySQL,之于普通开发者,这四方面够用了:
(1)表设计;
(2)索引设计;
(3)SQL性能调优;
(4)MySQL常见业务实践;
画外音:能成为Top10%的MySQL开发者么?
沈老师,要怎么学这些内容呢?
只是这4项的话,不要去啃MySQL官网,太枯燥太低效了。我推荐这个项目给你。
项目名称:mysql-for-developers
项目链接:
https://planetscale.com/learn/courses/mysql-for-developers
mysql-for-developers是什么?
这不是一个开源的git项目,而是planetscale开放的一个针对MySQL开发者的免费课程。
画外音:某些原因,文末再介绍planetscale。
mysql-for-developers有什么特点?
(1)针对开发者,不全面但实用;
画外音:不涉及运维,架构,内核。
(2)视频文字双管齐下;
(3)不枯燥,有很多具体的例子,通俗易懂;
mysql-for-developers只有四个章节,重头戏是中间两个章节。
第一章,表(schema)设计。
画外音:要是觉得初级,可以跳过。
第二章,重点,索引(indexing)设计。
这一章介绍了:
主键索引(primary key)
普通索引(secondary key)
主键数据类型(primary key data type)
索引怎么添加(where to add)
画外音:索引一般添加在 where, order by, join, group by ... 等相关列上。
索引选择(index selectivity)
前缀索引(prefix index)
复合索引(composite index)
覆盖索引(covering index)
全文索引(fulltext index)
...
基本上常见的场景与索引都涵盖了。
第三章,重点,SQL性能调优。
这一章介绍了:
EXPLAIN工具
行数限制(limit)
连接(join)
子查询(subquery)
画外音:SQL优化都有非常直观的案例。
表达式(expression)
递归(recursive)
UNION
空值(NULL)
排序(sorting)
...
等多种场景下的SQL调优。
通过SQL实现业务功能未必难,用最优的SQL才最体现开发者的功底。
第四章,案例:MD5场景,位操作场景,布尔值场景,时间戳场景,汇总表场景,元数据表场景,分页场景,地理位置搜索场景... 等多个场景业务场景,都有非常详细的说明。
另外,视频文字双管齐下,也是这个项目的特色。
左侧是各章节的目录,右侧是课程视频。
如果嫌视频进度太慢,课程视频的下面有文字说明。
mysql-for-developers还有一个大优点:学习成功率高!
啃MySQL官网,没有一两个月啃不下来,容易中途劝退。
而这个项目,只讲工程师用得到的,总长只有4-5个小时,并且切碎成了5-15分钟的知识点,大家可以按需学习,让参与学习的童鞋信心指数大增。
这个planetscale开放的MySQL免费课程的介绍接近尾声了,正常情况下,按照我的习惯,要吹一波课程的“主人”planetscale,但这一次...
它居然...
service not available in China.
好吧,大家散了吧,学免费的课程就好。
工作期间的8小时,求生存;
工作之外的8小时,谋发展。
咱们一起,学起来!
MySQL历史文章:
帮忙分享给有需要的朋友,谢转。