知道我什么时候接触MySQL数据库么?那还是上个世纪,1998年,当时我在广州一家公司,开始接手一个人才网站,我把整站从asp+access的架构,调整为PHP+MySQL。

后来我做的很多事情都是基于MySQL的,我开始第一次创业,做免费二级域名,用的是MySQL。转型做文本广告交换,一度是市场第二名,仅次于太极链,当年的老站长都知道,用的是MySQL,第二次创业做企业办公系统,用的是MySQL,系统是做出来了,但这个业务没做成。后来转做一统统计,CNZZ(对,就是现在阿里云旗下的那个),还是MySQL;在百度做数据分析,后面跑的是MySQL;去四三九九带起社区项目,自然依然是MySQL。

现在如果去百度文库搜索”mysql 性能优化教程+caoz“,应该还能找到我分享的教程。

那么,读者再猜一猜,我什么时候对MySQL性能优化有比较明确感知的,可能很多人想不到,是2010年左右,也就是从最初使用之后的12年。那时候,我都三十五了,在业内属于该被淘汰的范畴了。很多人都高估了我,以为我很早就精通数据库优化,其实在做广告交换,做cnzz的时候,大数据频繁请求的性能优化靠的是当时很少人想到的异步处理机制和共享内存的使用,而不是数据库优化的思路,直到4399的时候,数据关系复杂了很多,很多技术问题躲不过去,硬着头皮去研究,到处拜师求教,然后慢慢通了。

我大学唯一挂科的课程是数据结构,纯选修课,为了混上机时间,所以压根没怎么上过课,挂科也无所谓,对拿学位毫无影响,但毕业后若干年我才知道自己当时有多愚蠢。数据结构的思想在研发相关工作中,实在是太重要了。而数据库所适用的工作场景,也实在太多了。你所知道的每个互联网巨头,每个成熟的互联网产品,背后可能都藏着一个或多个数据库系统。而传统软件,无论是电信,银行,还是企业办公,erp,数据库自然也是其中最核心的部分。

MySQL由于免费,而且性能强劲,是目前使用最广泛的数据库产品,同时也是入门门槛最低的数据库产品之一,更重要的是,以MySQL为学习原型,以后去适应和掌握其他数据库产品,思想和原理都是互通的,也不会有太大障碍。

那么,是不是只有DBA和程序员才需要学习?很多人说自己想从事数据分析相关,问应该学什么,当然,你较真的说,数据分析并不是数据库的分析,这俩差距可大了,但我想说,至少你应该具有一定的数据库知识基础吧。还有,很多互联网公司的商业分析师,产品经理,都自学数据库的,知道为什么么,你工作中经常要查数据,分析用户行为记录,程序员使唤不动,没时间配合怎么办,人家扔给你个线下从库,让你自己折腾去。当年百度的商业产品部门就是这样的,自己动手,丰衣足食。

那么,是不是看我的教程,跟我学就对了,这个,咳咳,我差不多六七年没碰技术了,前段时间和知识星球的研发关于他们某个数据索引的事情理论了一番,后来很惭愧被打脸了,我的知识储备过时了,没有与时俱进,现在数据库很多新特性已经超出我当年的认知了。

所以我给大家推荐一个更厉害的老师,人家是看着MySQL源码去分析性能的,比我当年的境界高的多了,他叫林晓彬,曾是百度贴吧的研发工程师,之后就职于阿里,花名丁奇,是阿里云数据库内核的核心开发。他在极客时间开辟了《MySQL实战45讲》,限时优惠,目前仅售68元,非常值得推荐。