Online Encyclopedia Search Tool

Your Online Encyclopedia


Online Encylopedia and Dictionary Research Site

Online Encyclopedia Free Search Online Encyclopedia Search    Online Encyclopedia Browse    welcome to our free dictionary for your research of every kind

Online Encyclopedia


MySQL is a multithreaded, multi-user, SQL (Structured Query Language) relational database server (RDBS). MySQL is available either under the GNU General Public License (GPL) or under other licenses when the GPL is inapplicable to the intended use.

Unlike projects such as Apache, MySQL is owned and sponsored by a single for-profit firm, MySQL AB. The MySQL trademark and copyright are owned by the Swedish company MySQL AB. The company develops and maintains the system, selling support and service contracts, as well as commercially-licensed copies of MySQL, and employing people all over the world who communicate over the internet. Two Swedes and a Finn founded MySQL AB: David Axmark , Allan Larsson and Michael "Monty" Widenius.

Despite the widespread pronunciation of "SQL" as "sequel", professionals generally pronounce "MySQL" as "my ess-que-ell", not "my-sequel" [1] .



MySQL works on many different platforms—including AIX, BSDi, FreeBSD, HP-UX, Linux, Mac OS X, NetBSD, Netware, OpenBSD, OS/2 Warp, QNX, SGI IRIX, Solaris, SunOS, SCO OpenServer, SCO UnixWare, Tru64, Windows 95, Windows 98, Windows NT, Windows 2000, Windows XP, and more recent versions of Windows. A port of MySQL to OpenVMS is available here .

Programming languages

Programming languages which can access MySQL databases include: C, C++, Eiffel, Smalltalk, Java (with a native Java driver implementation), Lisp, Perl, PHP, Python, Ruby, and Tcl; each of these using a specific API. An ODBC interface called MyODBC allows additional programming languages that support the ODBC interface to communicate with a MySQL database. MySQL uses ANSI C as its "native" language.


MySQL is popular for web applications like Wikipedia and PHP-Nuke and acts as the database component of LAMP. The popularity as a web application is closely tied to the popularity of PHP, which is often combined with MySQL and nicknamed the Dynamic Duo. It is easy to find many references that combine the two from books (PHP and MySQL for Dummies, PHP and MySQL Bible, Beginning PHP and MySQL....) to websites. The implication in many books is that MySQL is easier to learn and use than many other database applications. An example from the Dummies book is that you can quit MySQL with an obvious command of either exit or quit.

The latest production version

As of 2004, MySQL offers production version 4.1.7. It includes the following features:

  • A broad subset of ANSI SQL 99, as well as extensions
  • Cross-platform support
  • Independent storage engines (MyISAM for read speed, InnoDB for transactions and referential integrity)
  • Transactions, including savepoints
  • SSL support
  • Query caching
  • Sub-SELECTs (or nested SELECTs)
  • Replication with one master per slave, many slaves per master
  • Full-text indexing and searching using MyISAM engine
  • Embedded database library
  • Full Unicode support
  • ACID compliance using InnoDB engine
  • Shared-nothing clustering through MySQL Cluster

It does not include the following features:

Future releases

MySQL 5.0 contains support for the following features:

  • Stored procedures
  • Views
  • Cursors
  • True VARCHAR support
  • Easier GIS access
  • Triggers

MySQL 5.1 will contain support for:

  • Online backup for all storage engines
  • Foreign key support for all storage engines
  • Fail-safe replication
  • Column-level constraints

Criticisms of MySQL

Early versions of MySQL included few standard RDBMS features, and the current production version still lacks many properties found in other SQL RDBMSs. This has led some database experts, such as Chris Date and Fabian Pascal, to criticize MySQL as falling short of being an RDBMS. [2]

Many of the early criticisms have been remedied in later versions of the software, including the lack of transactions and relational integrity constraints. These are features necessary to support the "ACID properties" for relational databases, which allow the DBMS to ensure that client applications cannot interfere with one another or insert inconsistent values. [3] Other criticisms include MySQL's divergence from the SQL standard on the subject of treatment of NULL values and default values. Its handling of dates allowed invalid dates to be stored, and arithmetic operations are vulnerable to either integer overflow or floating point truncation. [4]

Earlier versions of the MySQL manual included claims that certain essential missing features were useless or even harmful, and that users were better off without them. One section, entitled "Reasons NOT to use Foreign Keys constraints" (sic) advised users that relational-integrity checking was difficult to use and complicated a database application, and that its only useful purpose was to allow client software to diagram the relationships between database tables. [5] Another section claimed that a DBMS lacking transactions can provide as reliable of data-integrity assurances as one supporting them -- conflating the issue of transactional integrity with that of saving data when the database server loses power. [6] Since these claims contradicted basic principles of relational database design, they caused MySQL to be ridiculed by some database experts. Right or wrong, these claims have since been removed in more recent versions of the manual. MySQL today supports the previously-dismissed features of relational integrity checking and transactions in an effort to meet the broadest needs, and facilitate migration efforts.

Critics find MySQL's popularity surprising in the light of the existence of other open-source database projects with comparable performance and in closer compliance to the SQL standards. MySQL advocates reply that the program serves its purpose for its users, who are willing to accept the program's limitations (which decrease with every major revision) in exchange for speed, simplicity, and rapid development.

Some users have also criticized MySQL AB's position on the licensing of the software.


Both the MySQL server software itself and the client libraries are distributed under a dual-licensing format. Users may choose GNU General Public License [7] , or they may choose a commercial license.

Some users have independently continued to develop an earlier version of the client libraries, which was distributed under the less-restrictive Lesser General Public License. [8]

See also

Other SQL database servers

External links

  • MySQL Website
  • Debian MySQL
  • MySQL roadmap
  • MySQL Webmonkey tutorial
  • MySQL Reference Guide
  • DBDesigner 4
  • MySql Manual on UnixCities.Com
  • MySQL Gotchas —description of many features in MySQL, which work as advertised, but not as expected
  • PostgreSQL vs MySQL: Which is better? by Ian Gilfillan
  • Open Source Databases: As The Tables Turn by Tim Perdue
  • MySQL Manager
  • MySQL from/to Access
  • MySQL for OpenVMS
  • PHP MySQL Tutorial A tutorial that explains using MySQL and PHP plus examples like creating a guestbook, contact form, uploading files to database, creating a simple Content Management System (CMS), etc.
  • MySQL Solution Providers Index An directory of companies world-wide that provide support/development services for MySQL.

Last updated: 02-10-2005 05:45:52
Last updated: 02-20-2005 07:04:51