之前写过不少MySQL相关的文章:《MySQL缓冲池,终于讲清楚了》《数据库允许空值(null),往往是悲剧的开始》《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历史文章:《MySQL缓冲池,终于讲清楚了》《数据库允许空值(null),往往是悲剧的开始》《MySQL性能调优,必须掌握这一个工具》 帮忙分享给有需要的朋友,谢转。