【大众浪潮厅】
1995年,MySQL 3.21正式问世。由MySQL AB主导开发,面向Linux平台用户。
开源数据库的王者起点,让网站后台变得轻盈又强大。
技术特色:数据库、开源、Web。
影响力评估:技术维度 9/10,商业维度 8/10,文化维度 7/10,用户维度 9/10。
作为大众浪潮厅的经典代表,MySQL 3.21在软件发展史上留下了深刻的印记。
开源数据库的王者起点,让网站后台变得轻盈又强大。
【大众浪潮厅】
1995年,MySQL 3.21正式问世。由MySQL AB主导开发,面向Linux平台用户。
开源数据库的王者起点,让网站后台变得轻盈又强大。
技术特色:数据库、开源、Web。
影响力评估:技术维度 9/10,商业维度 8/10,文化维度 7/10,用户维度 9/10。
作为大众浪潮厅的经典代表,MySQL 3.21在软件发展史上留下了深刻的印记。
那是1995年的斯德哥尔摩,北欧的冬天漫长而寒冷,但在TcX公司的一间办公室里,Michael Widenius(通常被称为Monty)和David Axmark正对着屏幕上的代码焦头烂额。他们需要的是一款能与自家应用深度集成的数据库,但手头的选择实在令人沮丧。商业数据库如Oracle和Informix价格高昂,授权复杂,对小型公司来说如同天堑;而当时为数不多的开源选项mSQL,虽然免费,却功能简陋,速度慢得令人发指,且缺乏他们迫切需要的多线程支持。这种“矮子里拔将军”的窘境,最终点燃了一个改变互联网格局的念头——自己写一个。
Monty和Axmark并非初出茅庐的愣头青。Monty早在1980年代就为瑞典公司Unilog编写过数据库工具,他开发的UNIREG数据库系统在TcX内部被广泛使用,积累了丰富的底层存储和索引经验。Axmark则是一位经验丰富的系统管理员和开发者,两人在TcX共事多年,对数据库的痛点有着切肤之痛。他们最初的目标其实很朴素:为TcX的Web应用(比如一个名为“WebY”的在线表单系统)打造一个快速、稳定、免费的数据库后端。这个项目最初被命名为“mSQL 2.0”,试图在mSQL基础上进行大幅改造,但很快他们就发现,与其修补一个破旧的车轮,不如直接重新造一个。
于是,MySQL的雏形诞生了。名字的由来有一段温馨的轶事:Monty的女儿名叫My,而“SQL”是结构化查询语言的缩写,组合起来就是“My SQL”。这个命名既带有个人情感,也暗示了这是一款“属于你的、易用的SQL数据库”。关于这只标志性的海豚——名为Sakila——则是后来才加入的吉祥物,由Monty的妻子提议,象征敏捷、友好和智慧,与MySQL轻量、快速、开源的定位完美契合。
1995年,MySQL的第一个公开版本——3.21系列——正式发布。为什么是3.21而不是1.0?这背后是Monty的务实主义:TcX内部早已使用过多个版本的UNIREG和早期MySQL原型,内部版本号已经跳到3.x。3.21这个数字,意味着它并非一个粗糙的试验品,而是经过内部打磨、具备一定成熟度的产品。它最初的目标平台是Linux,那个刚刚诞生四年、正从黑客玩具向严肃操作系统转型的Linux。1995年的Linux内核版本是1.2,内存通常只有8MB到16MB,硬盘空间以百兆计。MySQL 3.21正是为这种“贫瘠”环境量身定做的——它仅需8MB内存和20MB磁盘空间,就能跑起一个支持多线程、多用户的SQL服务器。这在当时是不可思议的:商业数据库动辄要求几百兆内存和昂贵的专用硬件,而MySQL却能在一台淘汰的386电脑上流畅运行。
从技术架构上看,MySQL 3.21奠定了未来二十年的基因。它采用客户端-服务器(C/S)架构,服务器端用C和C++编写,客户端则提供C语言API,方便开发者嵌入各种程序。核心创新在于多线程设计。当时大多数开源数据库(如mSQL)是单进程的,一个查询阻塞,整个数据库就卡死。而MySQL利用POSIX线程(pthreads)实现了真正的并发:每个连接由独立线程处理,查询之间互不干扰。这让它在低配硬件上也能支撑数十个并发连接,而商业数据库要达到同等并发,往往需要昂贵的多处理器服务器。
存储引擎方面,3.21版本使用的是ISAM(索引顺序访问方法),这是Monty从UNIREG继承来的核心技术。ISAM是一种简单的表级锁存储引擎,没有事务、外键或行级锁,但它极其快速且资源占用极低。对于1995年典型的Web应用——比如一个博客、留言板或产品目录——ISAM完全够用。查询一条记录只需一次磁盘寻道,插入和更新也异常高效。这种“小而”的设计哲学,让MySQL在Web领域如鱼得水。
SQL支持是另一个亮点。3.21版本已经实现了大多数基本SQL语法:SELECT、INSERT、UPDATE、DELETE、CREATE TABLE、JOIN(尽管是简单的嵌套循环连接)、GROUP BY、ORDER BY、聚合函数(COUNT、SUM、AVG等)。它甚至支持子查询(虽然性能一般)和UNION操作。对于当时的Web开发者来说,这意味着他们可以用熟悉的SQL语言操作数据库,而无需学习专有API。相比之下,mSQL的SQL支持残缺不全,连LEFT JOIN都没有。
安装过程也极其简单。MySQL 3.21的发行包只有几个可执行文件(mysqld、mysql、mysqladmin)和少量配置文件。用户只需解压、运行一个脚本初始化系统表,就能在几分钟内启动数据库。而同时代的Oracle 7安装需要半天,还要配置复杂的参数文件。这种“开箱即用”的体验,让无数个人站长和初创公司迅速拥抱MySQL。
市场影响是爆炸性的。1995年正是万维网从学术工具向商业平台转型的关键节点。Netscape Navigator刚刚上市,JavaScript诞生,Amazon和eBay成立不久。网站从静态HTML页面转向动态内容,需要后台数据库支持。但高昂的授权费(Oracle每用户数千美元)和复杂的部署流程,让个人开发者和小公司望而却步。MySQL 3.21恰好填补了这个真空:它免费(遵循GPL许可证)、快速、简单,而且运行在免费的Linux上。LAMP架构(Linux + Apache + MySQL + PHP/Perl/Python)的雏形开始形成。开发者们发现,用这四样免费软件,就能搭建一个媲美商业网站的后台系统。
MySQL的社区也随之迅速壮大。1995年,互联网上的开源项目还很少,但MySQL的邮件列表和FAQ已经活跃起来。Monty和Axmark亲自回复用户问题,修复bug,发布补丁。这种“创始人即客服”的模式,赢得了早期用户的忠诚。到1996年,MySQL 3.21.29版本发布时,下载量已经超过数千次。1997年的3.21.33版本,更是被整合进多个Linux发行版,成为系统默认的数据库。
竞争格局也很有意思。当时商业数据库阵营(Oracle、Informix、Sybase)对MySQL不屑一顾,认为它“玩具级”的功能(没有事务、没有存储过程)无法用于严肃应用。但Web开发者们不在乎:他们只需要存储用户信息、文章内容和会话数据,事务和存储过程是锦上添花。mSQL则因为性能差、社区小,逐渐被MySQL取代。PostgreSQL虽然功能更强(支持事务、视图、触发器),但安装复杂、性能较慢,且当时没有商业支持,在Web领域落后于MySQL。
轶事趣闻方面,MySQL早期开发充满了“车库创业”的浪漫色彩。Monty和Axmark经常在TcX办公室的沙发上过夜,调试代码到凌晨。有一次,一个bug导致数据库在并发写入时崩溃,Monty花了整整一周,最终发现是Linux内核中一个pthreads实现的bug——他不得不向Linus Torvalds提交补丁。另一个趣闻是,MySQL 3.21的文档最初只有一页纸,写着“如何安装”和“基本SQL语法”,用户手册是后来根据邮件列表的问题逐渐补充的。
文化遗产是深远的。MySQL 3.21不仅是一款软件,更是“数据库民主化”的象征。它证明了免费、开源、低配的数据库也能支撑起数百万用户的网站——后来Wikipedia、Facebook、YouTube等巨头都曾(或仍在)使用MySQL。它的多线程设计影响了后来几乎所有开源数据库(如MariaDB、Percona Server)。ISAM存储引擎虽然后来被MyISAM和InnoDB取代,但“存储引擎可插拔”的架构理念一直延续至今。更重要的是,它降低了Web开发的准入门槛,让无数没有预算购买Oracle的年轻人,能够用一台旧电脑搭建自己的动态网站,从而推动了整个互联网生态的繁荣。
1998年,MySQL 3.22发布,引入了更强大的MyISAM存储引擎和事务支持。但3.21版本作为起点,永远刻在科技史中。它就像福特T型车——也许简陋、没有空调、没有安全气囊,但它让普通人第一次拥有了汽车。今天,当我们在手机上刷社交媒体、在电商网站上购物、在云服务中存储数据时,背后可能都有一个MySQL数据库在默默工作。而这一切,都始于1995年斯德哥尔摩那个寒冷冬夜,两个程序员对mSQL的不满,以及一个名叫My的小女孩的名字。
对技术发展和工程实践的推动程度
对商业模式和市场格局的影响深度
在科技文化和社会层面的持久影响力
用户群体的广度和普及程度