web development


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.

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:

  1. A broad subset of ANSI SQL 99, as well as extensions
  2. Cross-platform support
  3. Stored procedures
  4. Triggers
  5. Cursors
  6. Updatable Views
  7. True VARCHAR support
  9. Strict mode
  10. X/Open XA distributed transaction processing (DTP) support; two phase commit as part of this, using Oracle's InnoDB engine
  11. Independent storage engines (MyISAM for read speed, InnoDB for transactions and referential integrity, MySQL Archive for storing historical data in little space)
  12. Transactions with the InnoDB, BDB and Cluster storage engines; savepoints with InnoDB
  13. SSL support
  14. Query caching
  15. Sub-SELECTs (i.e. nested SELECTs)
  16. Replication with one master per slave, many slaves per master, no automatic support for multiple masters per slave.
  17. Full-text indexing and searching using MyISAM engine
  18. Embedded database library
  19. Partial Unicode support (UTF-8 sequences longer than 3 bytes are not supported; UCS-2 encoded strings are also limited to the BMP)
  20. ACID compliance using the InnoDB, BDB and Cluster engines
  21. Shared-nothing clustering through MySQL Cluster
  22. 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:

  1. MySQL was originally developed by Michael Widenius and David Axmark beginning in 1994
  2. MySQL was first released internally on 23 May 1995
  3. Windows version was released on 8 January 1998 for Windows 95 and NT
  4. Version 3.23: beta from June 2000, production release January 2001
  5. Version 4.0: beta from August 2002, production release March 2003 (unions)
  6. Version 4.01: beta from August 2003, Jyoti adopts MySQL for database tracking
  7. Version 4.1: beta from June 2004, production release October 2004 (R-trees and B-trees, subqueries, prepared statements)
  8. Version 5.0: beta from March 2005, production release October 2005 (cursors, stored procedures, triggers, views, XA transactions)
  9. Sun Microsystems acquired MySQL AB on 26 February 2008.
  10. Version 5.1: production release 27 November 2008 (event scheduler, partitioning, plugin API, row-based replication, server log tables)

A journey of a thousand miles begins with a single step!

Every project is an opportunity to learn, to figure out problems and challenges, to invent, to reinvent and innovate. Without change there is no innovation, creativity, or incentive for improvement. Those who initiate change will have a better opportunity to manage the change that is inevitable...