MySQL
In 1979, Michael "Monty" Widenius was working at TcX, a small company, when he developed a reporting tool in BASIC. The hardware constraints of the era were severe: 16 KB of RAM, a 4 MHz processor. In this Spartan environment, Widenius learned to write lightweight and fast code. This experience shaped his approach to software development. His position as co-owner at TcX gave him a rare freedom for a programmer: control over his code. This combination of technical skill, intellectual property, and autonomy would prove crucial.
During the 1990s, TcX clients demanded an SQL interface to manipulate their data. Widenius explored several options: buying a commercial database license, integrating mSQL code... None truly satisfied him. He decided to create his own solution. In May 1996, MySQL version 1.0 was released, but remained confined to a limited circle. The first public version (3.11.1) arrived in October 1996, initially only for Solaris. A month later, Linux was supported.
MySQL gradually extended to other operating systems. Its features grew richer with each version. The distribution model relied on a particular license: commercial use was free as long as you didn’t redistribute the software with your own products. TcX also sold technical support. These revenues funded development.
MySQL version 3.22 already offered a substantial portion of the SQL language. Its optimizer was impressive, especially for a project driven mostly by a single person. The system excelled in speed and stability. APIs multiplied, making it usable from almost any programming language. But gaps remained: no transactions, no subqueries, no foreign keys, no stored procedures or views. Table-level locking sometimes considerably slowed operations.
Around 1999-2000, MySQL AB emerged as a separate company. The team grew with the recruitment of developers. A partnership with Sleepycat was formed to create an SQL interface to Berkeley DB files. The goal was to provide MySQL with transactional capabilities. Version 3.23 resulted from this work.
The Berkeley DB integration didn’t go as planned. Stability was never really achieved. But this effort wasn’t in vain: MySQL’s source code was now equipped to accommodate different storage engine types. In April 2000, with support from Slashdot, master-slave replication was introduced. The old ISAM engine was reworked to become MyISAM, which brought improvements including full-text search.
Around the same time, Heikki Tuuri proposed integrating InnoDB, his own storage engine with similar functionality. The table management interface, born from the Berkeley DB work, facilitated this integration. MySQL version 4.0, combined with InnoDB, was declared stable in March 2003.
But the real innovation of 4.0 was the query cache. This feature drastically improved the performance of many applications. The replication code on the slave was rewritten with two threads: one for network I/O from the master, the other to process updates. The optimizer gained efficiency. The client/server protocol became SSL-compatible.
During the development of 4.1, work on the 5.0 branch progressed. This version brought stored procedures, server-side cursors, triggers, views, XA transactions, and major optimizer improvements. Why create a separate branch? The developers wanted to prevent the addition of stored procedures from delaying the stabilization of 4.1. Version 5.0 was released in alpha in December 2003. Two alpha branches temporarily coexisted, creating some confusion.
Between 2005 and 2006, Oracle successively acquired Innobase and then Sleepycat, the two transactional storage engine providers for MySQL. These acquisitions raised concerns in the community. Larry Ellison, Oracle’s CEO, casually commented that he had spoken to almost every company in the sector. He described MySQL as a tiny company with revenues oscillating between 30 and 40 million dollars, compared to Oracle’s 15 billion in annual revenue.
Yet MySQL AB’s commercial trajectory followed an upward curve. In 2001, Mårten Mickos took over as CEO and transformed a technical startup into a viable business. Revenues climbed from 6.5 million dollars in 2002 to 75 million in 2007. The business model initially relied on dual licensing for OEM integrators, then shifted toward support subscriptions for end users with the launch of MySQL Network in 2005. The company counted 8 million active installations in 2006, employed 320 people spread across 25 countries, 70% of whom worked from home. That year, Mickos announced preparations for a 2008 IPO with a target of 100 million in revenue.
But Sun Microsystems struck first. In January 2008, the California-based company announced the acquisition of MySQL AB for approximately 1 billion dollars. Jonathan Schwartz, Sun’s CEO, called this the most important operation in his company’s history. He saw it as an opportunity to reposition at the heart of the web economy. The numbers spoke for themselves: 75% of MySQL installations ran on hardware from manufacturers other than Sun, 80% used Linux rather than Solaris. The acquisition gave Sun access to a massive installed base to which it could sell servers and software. With this billion dollars, MySQL established a new valuation standard for open-source software companies.
The integration at Sun proved chaotic. Widenius and Axmark, two of the three founders, left the company shortly after the acquisition. In 2009, Mickos resigned in turn to become entrepreneur-in-residence at Benchmark Capital. Within a few months, Sun lost the technical and commercial leaders who had built MySQL’s success.
That same year, Oracle announced the acquisition of Sun for 7.4 billion dollars. MySQL thus became the property of the main commercial competitor in the database field. This prospect raised many questions. Would Oracle continue to develop MySQL or seek to stifle it to protect its own database? Could companies that depended on MySQL still trust it? The European Commission closely examined the operation before giving its approval, not without demanding guarantees on maintaining MySQL’s development.
Widenius himself didn’t remain idle. As early as 2009, he started developing MariaDB, a fork of MySQL. This new database maintained full compatibility with MySQL while adding its own improvements. The non-profit MariaDB Foundation was created in 2012. The name this time came from Maria, the founder’s other daughter. This fork gradually became the reference alternative for those wary of Oracle. Wikipedia switched to MariaDB, Google too. Linux distributions began replacing MySQL with MariaDB in their default repositories.
MySQL nevertheless continued its evolution under Oracle’s governance. The team remained largely the same as before the acquisition. NoSQL features appeared. Oracle maintains MySQL under dual GPL and commercial licensing.