如何系统性学习数据库知识? | 个人经验分享

Posted 58沈剑

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何系统性学习数据库知识? | 个人经验分享相关的知识,希望对你有一定的参考价值。

之前发了一些文章:

频繁插入,用什么存储引擎更合适?

MySQL性能调优,必须掌握这一个工具

数据库允许空值(null),往往是悲剧的开始

插入时,究竟发生了什么?

数据库是应用开发中不可或缺的一环,很多朋友会问我,如何系统性学习数据库知识,今天和大家简单分享一下。

首先,要搞透数据库,要学哪几方面的知识?

以我对mysql的学习为例,至少三个方面的内容需要了解与掌握的:

其一,应用层面:各行各业,是如何使用MySQL来解决各类业务问题的。

画外音:研发工程师必须掌握。

其二,内核层面:MySQL的内核原理是怎么样的。

画外音:架构师,想要用好MySQL的工程师,数据库内核研发人员必须掌握。

其三,上下游工具:MySQL相关的工具,有哪些以及原理是怎么样的。

画外音:架构师要了解,MySQL运维人员与DBA必须掌握。

如何学习MySQL“应用层面”的知识呢?

于我而言,20%来自看书学习,行业交流学习;80%来自日常工程实践(文末也提供了一个难得的实践好机会)。在做即时通讯,支付,推荐系统,信息平台,交易平台,打车平台,运营中后台的过程中,针对不同业务,设计不同的数据库应用方案。

数据库应用,实践出真知,有些业务系统不干一遍,是难以知道,其中的数据库设计有哪些坑的。

如何学习MySQL“内核层面”的知识呢?

于我而言,看MySQL官网文档。

如上图所述:MySQL恢复机制,优化,InnoDB,复制等四个章节需要重点学习。

其中,最重点的又属InnoDB模块

如上图所示,InnoDB模块中的:介绍,ACID模型,MVCC,体系结构,内存数据结构,磁盘数据结构,锁与事务等章节建议重点学习。

如何学习MySQL“上下游工具”的知识呢?

于我而言,主要还是看MySQL官网文档

其中,MySQL服务管理员,MySQL shell,MySQL sys表等很多章节,对研发工程师和架构师快速定位MySQL问题,对运维与DBA维护与调优MySQL,都非常有帮助。

如上,曾经的我,就是这么系统性的学习MySQL知识的,查阅的都是一手资料,所以撰文时才会非常自信:“如果和别家资料冲突的,以我的为准”。另外,当遇到问题要回顾的时候(不可能所有知识点都记得),去MySQL官网找到相应的地儿,就能快速解决问题。

画外音:网上误传的,过时的二手资料很多,还是建议大家直接看MySQL官网。

接下来,又有同学问我了:

(1)英文很差,看不懂MySQL官网;

(2)GOOGLE翻译出来的结果质量很差,很多专有名词文不对题;

(3)等专家几年后的中文译本,很多知识点又过时了;

怎么办?

额…

思来想去,还真不是没有办法。

数据库学习,只有MySQL一个选择吗?国人就没有拿得出手的数据库产品吗?

TiDB就是其中一个选择。

TiDB的系统性文档,对于大家学习【先进的】【中文的】【最新的】数据库应用,数据库内核,数据库上下游工具,绝对是不二选择。

如图所示:

0 -> 架构全览,用户手册

1 -> 体系结构与上下游工具

2 -> 应用实践

3 -> 认证资料

画外音:文末领取。

源码https://github.com/pingcap/tidb

有系统性文档,有源码,还是中文的,很适合学习。

当然,系统性学习数据库应用+内核+工具是一个长期的过程。有许多工程师实际面对的,是要解决一个具体的业务问题,此时,如何快速学习数据库应用与内核的知识呢?

还是那句话,在实践中学习是最快的,例如:黑客马拉松就是一个集中学习,快速成长的大好机会。

TiDB的作者黄东旭组织了一个TiDB黑客马拉松活动,活动在五城(北京,上海,广州,成都,新加坡)设立了线下会场。当然,也可以在线参加,有灵感出创意拿大奖,总奖池35W,非常有诚意。

活动分为两大赛道:

(1)应用方向:使用TiDB构建游戏,电商,金融,公益等各类应用,更多应用场景,等你来发掘;

(2)内核方向:为TiDB内核及上下游工具提升性能,稳定性,易用性,甚至添加新功能;

画外音:不管是应用还是内核,都能快速提升。

每个赛道又分为几阶段:

今天 - 10.17 :报名,找idea,找队友组队,提交初赛RFC(此阶段不需要编码

10.17 - 10.19 :初赛评选,每个赛道前30组进入决赛

10.22 - 10.23 :决赛,coding(代码必须开源,且遵循 Apache2.0开源许可

10.23 :决赛答辩,评奖颁奖

除了丰厚的35W奖金,这次黑客马拉松,还能让你结交更多的朋友,快速学习TiDB的应用与内核,和TiDB的作者做深入的技术交流,是一个不可多得的成长机会

找举办方要了一个参赛快捷通道,扫码添加小助手(或者直接加微信:tidbai),进入活动群,认识更多小伙伴。参赛所需相关资料(文档+视频)都已经准备好,等你来挥洒创意。

扫码报名,立刻入群

更多 TiDB 相关原理解读、用户案例、开发适配等技术内容,都在 TiDB 社区中,欢迎查看:https://tidb.net/

阅读原文,了解更多活动信息,希望大家有收获。

以上是关于如何系统性学习数据库知识? | 个人经验分享的主要内容,如果未能解决你的问题,请参考以下文章

python--学习初衷(个人记录,无知识分享)

个人建站服务器选择经验分享

个人建站服务器选择经验分享

特邀专栏:如何学习草图大师 sketchup?

高情商的男生,是怎么陪女朋友逛街的? | 亲身经验分享

CTF学习经验分享(Web方向)