MySQL is a relational database management system (RDBMS) that runs as a server providing multi-user access to a number of databases. MySQL is officially pronounced /maɪˌɛskjuːˈɛl/ ("My S-Q-L"), but is often pronounced /maɪˈsiːkwəl/ ("My Sequel"). It is named for My, the daughter of Michael Widenius (the original developer of MySQL)
The MySQL development project has made its source code available under the terms of the GNU General Public License, as well as under a variety of proprietary agreements. MySQL was originally owned and sponsored by a single for-profit firm, the Swedish company MySQL AB.
MySQL has changed ownership when Sun purchased MySQL in Janaury 2008 for $1B. Some 15 months later, before the ink could fully dry, Oracle bought Sun. This made MySQL a subsidiary of the Oracle Corporation.
Ever since Oracle has stepped into the picture, they have made good on their promises to make steady strides in MySQL development, which have come to fruition heretofore by means of better performance and configurability. However, older bugs still exist in MySQL, which Oracle has fixed fast enough for many in the MySQL community.
In light of this, and in keeping with spirit of open source liberty and freedom, forks of MySQL have surfaced in the Open Source DB World as viable alternatives:
- Linux (Redhat Enterprise, Oracle Enterprise, Generic, Linux6 as for 5.5.17)
- Sun Solaris
- Mac OS X
- Free BSD
- Microsoft Windows
- Source Code
- InnoDB (default as of MySQL 5.5)
- MyISAM (default prior to MySQL 5.5)
- ARCHIVE (INSERT/SELECT only Engine for Raw Data; No Indexes)
- BLACKHOLE (/dev/null Storage Engine)
- CSV (CSV File That is SQL Accessible)
- MEMORY (Memory-Based Hash-Indexed Tables (BTREE Indexes Optional))
- MERGE (MRG_MYISAM) (Colletive Mapping of Multiple MyISAM Tables)
- FEDERATED (MyISAM table access via Remote Connection)
- NDB (Network Database Storage Engine for MySQL Cluster)
Each Storage Engine has Distinct Properties that make efficient usage of data depending on
- Read Performance
- Write Performance
- Storage Requirements
- Memory Utilization
- Tuning the Engine Settings for
- Internal Use
- Multiple CPUs
- OS Usage
For example, InnoDB has undergone a facelift which now allows it to take advantage of multiple CPU architectures. It was first introduced in MySQL 5.1.38 InnoDB Plugin. Those changes have now been fully incorporated in MySQL 5.5's InnoDB (Note: Percona Server already had these enhancements in 5.0 and 5.1. Oracle is nicely catching up). The necessary options have default settings that must be tuned to engage multicore activity.
Other third party storage engines have been used in MySQL including:
Xeround Cloud Service Offers the XEROUND Storage Engine. It is ACID-compliant and a Whitepaper about it was released Feb 2012. The three storage engines supported are : XEROUND, MyISAM, and MEMORY.