The History of MySQL

It would be a mistake to characterize MySQL as a simple reaction to mSQL’s failures. Its inventor, Michael

mysql

Widenius (a.k.a. Monty) at the Swedish company TcX, has been working with databases since 1979. Until recently, Widenius was the only developer at TcX. In 1979, he developed an in-house database tool called UNIREG for managing databases. Since 1979, UNIREG has been rewritten in several different languages and extended to handle big databases.

In 1994, TcX began developing web-based applications and used UNIREG to support this effort. Unfortunately, UNIREG created too much overhead to be successful in dynamically generating web pages. TcX began looking at SQL and mSQL. At that time, however, mSQL was still in its 1.x releases. As we mentioned, mSQL 1.x did not support any indices. mSQL’s performance was therefore poor in comparison to UNIREG.

Widenius contacted David Hughes — the author of mSQL — to see if Hughes would be interested in connecting mSQL to UNIREG’s B+ ISAM handler. Hughes was already well on his way to mSQL 2, however, and already had his indexing infrastructure in place. TcX decided to create a database server that was more compatible with its requirements.

TcX was smart enough not to try to reinvent the wheel. It built upon UNIREG and capitalized on the growing number of third party mSQL utilities by writing an API into its system that was, at least initially, practically identical to the mSQL API. As a result, an mSQL user who wanted to move to the TcX more feature-rich database server would only have to make trivial changes to any existing code. The code supporting this new database, however, was completely original.

By May 1995, TcX had a database that met its internal needs — MySQL 1.0. A business partner, David Axmark at Detron HB, began pressing TcX to release this server on the Internet. The goal of an Internet release would be to use a business model pioneered by Aladdin Peter Deutsch. The result was a very flexible copyright that makes MySQL “more free” than mSQL.

As for the name MySQL, Widenius says, “It is not perfectly clear where the name MySQL derives from. TcX’s base directory and a large amount of their libraries and tools have had the prefix ‘my’ for well over 10 years. However, my daughter (some years younger) is also named My. So which of the two gave its name to MySQL is still a mystery.”

Since the initial Internet release of MySQL, it has been ported to a host of Unix operating systems, Win32, and OS/2. TCX estimates that MySQL runs on about 500,000 severs.

Major changes in Version 3.22, the current recommended version, are:

  • Better security
  • Faster connections, faster parsing of SQL queries, and a better query optimizer
  • Support for more operating systems
  • INSERT DELAYED
  • GRANT and REVOKE commands
  • CREATE INDEX and DROP INDEX
  • HIGH_PRIORITY and LOW_PRIORITY lock levels for SELECT, INSERT, UPDATE, and DELETE statements
  • A new FLUSH command operating on TABLES, HOSTS, LOGS, and PRIVILEGES
  • A new KILL command in SQL that works like kill under Unix or msqladmin
  • A HAVING clause supporting expressions
  • Compressed client/server protocol
  • Saving default program options in my.cnf files

Major changes in Version 3.23, a development version, are:

  • Tables directly portable between different operating systems and CPUs
  • Temporary tables and HEAP tables, which are stored only in RAM
  • Support for big files (63 bit) on operating systems that support them
  • True floating point fields
  • Comments on tables
  • Sample ANALYSE( ) procedure
  • User-defined functions
  • Much faster SELECT DISTINCT handling
  • COUNT(DISTINCT)

Future enhancements planned for 3.23 include support for nesting one SELECT statement inside another and support for replicating databases, which permits load distribution among multiple servers and recovery in case of hardware failure.

MySQL is a very rapidly evolving database platform because of the army of volunteer coders who are helping to add to its strong base. You should therefore not be too surprised to find something that was true when we wrote this chapter is no longer true!

Leave a Reply