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!