MySQL is a relational database management system (RDBMS) running
as a server providing multi-user access to a number of
databases.
The name "MySQL" is officially pronounced /maɪˌɛskjuːˈɛl/ (My S Q
L), not "My sequel" /maɪˈsiːkwəl/. This adheres to the official
ANSI pronunciation; SEQUEL was an earlier IBM database language, a
predecessor to the SQL language. However, the developers do not
take issue with the pronunciation "My Sequel" or other local
variations.
MySQL is owned and sponsored by a single for-profit firm, the
Swedish company MySQL AB, now a subsidiary of Sun Microsystems,
which holds the copyright to most of the codebase.
MySQL is popular for web applications and acts as the database
component of the LAMP software stack. Its popularity for use with
web applications is closely tied to the popularity of PHP, which is
often combined with MySQL. Several high-traffic web sites
(including Flickr, Facebook,Wikipedia, Google, Nokia and YouTube)
use MySQL for its data storage and logging of user data.
MySQL works on many different system platforms, including AIX,
BSDi, FreeBSD, HP-UX, i5/OS, Linux, Ubuntu, Mac OS X, NetBSD,
Novell NetWare, OpenBSD, OpenSolaris, eComStation, OS/2 Warp, QNX,
IRIX, Solaris, Symbian, SunOS, SCO OpenServer, SCO UnixWare, Sanos,
Tru64 and Microsoft Windows. A port of MySQL to OpenVMS is also
available.
Libraries for accessing MySQL databases are
available in all major programming languages with language-specific
APIs. In addition, an ODBC interface called MyODBC allows
additional programming languages that support the ODBC interface to
communicate with a MySQL database, such as ASP or ColdFusion. The
MySQL server and official libraries are mostly implemented in ANSI
C/ANSI C++.
To administer MySQL databases one can use the
included command-line tool (commands: mysql and mysqladmin). Also
downloadable from the MySQL site are GUI administration tools:
MySQL Administrator and MySQL Query Browser. Both of the GUI tools
are now included in one package called tools/5.0.html MySQL GUI
Tools.
In addition to the above-mentioned tools developed by MySQL AB,
there are several other commercial and non-commercial tools
available. Examples include Navicat Free Lite Edition or SQLyog
Community Edition, they are free desktop based GUI tools and
phpMyAdmin, a free Web-based administration interface implemented
in PHP.
Features
MySQL offers MySQL 5.1 in two different variants: the MySQL
Community Server and Enterprise Server. They have a common code
base and include the following features:
- A broad subset of ANSI SQL 99, as well as extensions
- Cross-platform support
- Stored procedures
- Triggers
- Cursors
- Updatable Views
- True VARCHAR support
- INFORMATION_SCHEMA
- Strict mode
- X/Open XA distributed transaction processing (DTP) support; two
phase commit as part of this, using Oracle's InnoDB engine
- Independent storage engines (MyISAM for read speed, InnoDB for
transactions and referential integrity, MySQL Archive for storing
historical data in little space)
- Transactions with the InnoDB, BDB and Cluster storage engines;
savepoints with InnoDB
- SSL support
- Query caching
- Sub-SELECTs (i.e. nested SELECTs)
- Replication with one master per slave, many slaves per master,
no automatic support for multiple masters per slave.
- Full-text indexing and searching using MyISAM engine
- Embedded database library
- Partial Unicode support (UTF-8 sequences longer than 3 bytes
are not supported; UCS-2 encoded strings are also limited to the
BMP)
- ACID compliance using the InnoDB, BDB and Cluster engines
- Shared-nothing clustering through MySQL Cluster
- Replication support (i.e. Master-Master Replication &
Master-Slave Replication)
The MySQL Enterprise Server is released once per month and the
sources can be obtained either from MySQL's customer-only
Enterprise site or from MySQL's Bazaar repository, both under the
GPL license.
The MySQL Community Server is published on an unspecified schedule
under the GPL and contains all bug fixes that were shipped with the
last MySQL Enterprise Server release. Binaries are no longer
provided by MySQL for every release of the Community Server.
History
Milestones in MySQL development include:
- MySQL was originally developed by Michael Widenius and David
Axmark beginning in 1994
- MySQL was first released internally on 23 May 1995
- Windows version was released on 8 January 1998 for Windows 95
and NT
- Version 3.23: beta from June 2000, production release January
2001
- Version 4.0: beta from August 2002, production release March
2003 (unions)
- Version 4.01: beta from August 2003, Jyoti adopts MySQL for
database tracking
- Version 4.1: beta from June 2004, production release October
2004 (R-trees and B-trees, subqueries, prepared statements)
- Version 5.0: beta from March 2005, production release October
2005 (cursors, stored procedures, triggers, views, XA
transactions)
- Sun Microsystems acquired MySQL AB on 26 February 2008.
- Version 5.1: production release 27 November 2008 (event
scheduler, partitioning, plugin API, row-based replication, server
log tables)