- Great Painters
- Accounting
- Fundamentals of Law
- Marketing
- Shorthand
- Concept Cars
- Videogames
- The World of Sports

- Blogs
- Free Software
- Google
- My Computer

- PHP Language and Applications
- Wikipedia
- Windows Vista

- Education
- Masterpieces of English Literature
- American English

- English Dictionaries
- The English Language

- Medical Emergencies
- The Theory of Memory
- The Beatles
- Dances
- Microphones
- Musical Notation
- Music Instruments
- Batteries
- Nanotechnology
- Cosmetics
- Diets
- Vegetarianism and Veganism
- Christmas Traditions
- Animals

- Fruits And Vegetables


  1. Accrisoft
  2. Active calendar
  3. ActiveState Komodo
  4. AdLogger
  5. Apache HTTP Server
  6. AutoContent
  7. BakeSale
  8. Bblocked
  9. BBlog
  10. BbPress
  11. Beehive Forum
  12. B2evolution
  13. Bluefish
  14. Chlorine Boards
  15. CMScout
  16. CMSimple
  17. CMS Made Simple
  18. Content Protector
  19. Coppermine Photo Gallery
  20. CRE Loaded
  21. Cutenews
  22. DB DataObject FormBuilder
  23. Divine
  24. Dokeos
  25. DotOrg
  26. Dragonfly CMS
  27. Dreamweaver
  28. Drupal
  29. Dynamic Web page
  30. E107
  31. Eclipse
  32. 25 Essential PHP Functions
  33. FusionBB
  34. Gallery Project
  35. Gedit
  36. Group-Office
  37. HawHaw
  38. IceBB
  39. 4images
  40. Introduction to PHP
  41. Introduction to PHP Learning Guide
  42. IonCube Ltd.
  43. JEdit
  44. Joomla
  45. LAMP
  46. Linux
  47. List of PHP editors
  48. List of PHP libraries
  49. Maguma
  50. Mambo
  51. MediaWiki
  52. MetaBB
  53. Midgard
  54. MiniBB
  55. Monkey Boards
  56. Moodle
  57. MySQL
  58. Ning
  59. Nucleus CMS
  60. Nuke-Evolution
  61. NuSphere Corporation
  62. OpenPHPNuke
  63. Orbit42-Base
  64. OsCommerce
  65. Paamayim Nekudotayim
  66. Phalanger
  67. Php
  68. PHP accelerator
  69. PhpBB
  70. PhpBB Reloaded
  71. PHP Constants
  72. PHPDoc
  73. PhpDocumentor
  74. PHPEdit
  75. PHP Excel Reader
  76. PHP Extension Community Library
  77. PhpGedView
  78. PHP-GTK
  79. PhpLDAPadmin
  80. PHP License
  81. Phplist
  82. PhpMyAdmin
  83. PhpMyVisites
  84. Phpns
  85. PHP-Nuke
  86. PhpPgAdmin
  87. PhpWiki
  88. PmWiki
  89. PostNuke
  90. PSPad
  91. PunBB
  92. PuzzleApps
  93. Quanta Plus
  94. Rasmus Lerdorf
  95. ReallySimpleCMS
  96. Refbase
  97. RGameScript Pro
  98. Santy
  99. SciTE
  100. Serendipity weblog
  101. Simple Machines Forum
  102. SimpleXML
  103. SiteFrame
  104. Smarty
  105. SquirrelMail
  106. Textpattern
  107. Thatware
  108. Think Tank Forums
  109. TikiWiki
  110. TorrentVolve
  111. TYPO3
  112. UBB.threads
  113. UltraEdit
  115. Variables in PHP
  116. VBulletin
  117. WakkaWiki
  118. Web Application Structure for PHP
  119. Webwm
  120. Wikindx
  121. WikkaWiki
  122. WordPress
  123. WordPress MU
  124. Xaraya
  125. XOOPS
  126. Zen Cart
  127. Zend Engine
  128. Zend Studio
  129. Zend Technologies
  130. Zentri
  131. ZPanel


This article is from:

All text is available under the terms of the GNU Free Documentation License: 


From Wikipedia, the free encyclopedia


MySQL (pronounced /mɑɪ ɛs kʏuː ɛl/) is a multithreaded, multi-user, SQL Database Management System (DBMS) with more than six million installations.[1]

MySQL is owned and sponsored by a single for-profit firm, the Swedish company MySQL AB, which holds the copyright to most of the codebase. This is similar to the JBoss model and how the Free Software Foundation handles copyright in its projects, and dissimilar to how the Apache project does it, where the software is developed by a public community, and the copyright to the codebase is owned by its individual authors.

The company develops and maintains the system, selling support and service contracts, as well as proprietary-licensed copies of MySQL, and employing people all over the world who collaborate via the Internet. MySQL AB was founded by David Axmark, Allan Larsson, and Michael "Monty" Widenius.

The MySQL company also sells another DBMS, MaxDB, which is from an unrelated codebase.

Programming languages

There are APIs available that allow applications written in numerous programming languages to access MySQL databases, including: C, C++, C#, D, Borland Delphi (via dbExpress), Eiffel, Smalltalk, Java (with a native Java driver implementation), Lisp, Perl, PHP, Python, Ruby, REALbasic (Mac), FreeBasic, and Tcl; each of these uses a specific API. 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. MySQL is mostly implemented in ANSI C.


MySQL is popular for web applications and acts as the database component of the LAMP, MAMP and WAMP platforms (Linux/Mac/Windows-Apache-MySQL-PHP/Perl/Python), and for open-source bug tracking tools like Bugzilla. Its 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 in websites and books (PHP and MySQL for Dummies, PHP and MySQL Bible, Beginning PHP and MySQL, etc.) The claim made 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, although this is true for many other database applications.


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 MySQL GUI Tools.

A widespread and popular alternative, written in PHP, is the free software web application phpMyAdmin which is a server side tool. For client side MySQL administration and development, the leading tool is Navicat MySQL GUI , which provides the same functionality as phpMyAdmin but more advanced in the Import/Export, Backup and Data Sync. features.

Program specifications


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

The latest production version

As of October 2006, MySQL offers production version 5.0.27 (Community Server) and 5.0.28 (Enterprise Server). It includes 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
  • 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, 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

Future releases

The MySQL 5.1 roadmap outlines support for:

  • Partitioning
  • Online backup for all storage engines
  • Fail-safe replication
  • Column-level constraints
  • Event Scheduling
  • XML functions

Foreign key support for all storage engines will likely be released with MySQL 5.2 (although it has been present since version 3.23.44 for InnoDB).

The current MySQL 5.1 development release is 5.1.14 beta

Distinguishing features

The following features are implemented by MySQL but not by some other RDBMSes:

  • Multiple storage engines (MyISAM, Merge, InnoDB, BDB, Memory/heap, Cluster, Federated, Archive, CSV, Blackhole and Example in 5.x), letting you choose the one which is most effective for each table in the application.
  • Commit grouping, gathering multiple transactions from multiple connections together to increase the number of commits per second.

Server compilation type

There are 3 types of MySQL Server Compilations:

  • Standard: The MySQL-Standard binaries are recommended for most users, and include the InnoDB storage engine.
  • Max: (not MaxDB, which is a cooperation with SAP) is mysqld-max Extended MySQL Server. The MySQL-Max binaries include additional features that may not have been as extensively tested or are not required for general usage.
  • The MySQL-Debug binaries have been compiled with extra debug information, and are not intended for production use, because the included debugging code may cause reduced performance.

Beginning with MySQL 5.1, MySQL AB has stopped providing three different package variants. There will only be one MySQL server package, which includes a mysqld binary with all functionality and storage engines enabled. Instead of providing a separate debug package, a server binary with extended debugging information is also included in the standard package, named mysqld-debug mm. [3]

Source code specifics

MySQL is written in C. The SQL parser uses yacc and home-brewed lexer. A document describing some of the internal structures of the code and the coding guidelines is available from the MySQL web site.[4]


Via MySQL Network MySQL AB offers support itself, including 24/7 30-minute response time, with the support team having direct access to the developers as necessary to handle problems. In addition it hosts forums and mailing lists and employees and other users are often available in several IRC channels providing assistance.

Members of the MySQL Network enjoy access to binaries and software that is certified for their particular operating system, and the codebase changes much less frequently than the Community Edition of the MySQL Database Server engine. The Network maintains several levels of membership based on importance and urgency for response times.


MySQL AB makes MySQL Server available as free software under the GNU General Public License (GPL), but they also offer the MySQL Enterprise subscription offering for business users and dual-license it under traditional proprietary licensing arrangements for cases where the intended use is incompatible with the GPL.

Both the MySQL server software itself and the client libraries are distributed under a dual-licensing format. Users may choose the GNU General Public License [5], which MySQL has extended with a FLOSS License Exception. It allows Software licensed under other OSI-compliant Open Source licenses, which are not compatible to the GPL, to link against the MySQL client libraries. [6]

Customers that do not wish to be bound to the terms of the GPL may choose to purchase a proprietary license. [7]

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


"MySQL" is officially pronounced as "My Ess Queue Ell" [maɪ ɛs kjuː ɛl], not "My sequel" [maɪ siːkwəl], however the company does not take issue with the pronunciation "My sequel" or other local variations.

The "My" portion of the name supposedly comes from the name of Monty's child [9], spelled "My" but pronounced in the local language as "mü" [my] (or approximately in English, "me").

The "SQL" portion uses the fully spelled-out pronunciation of the initials, S-Q-L (Structured Query Language), not the "sequel" pronunciation, which adheres to the official ANSI pronunciation but conflicts with the earlier IBM database of that name.[10]

The Swedish (MySQL AB is a Swedish company) word "Myskväll" (cozy evening, or even My's evening, "Mys kväll") is pronounced in a similar way but this might be a coincidence. Nevertheless this pronunciation is quite usual in Sweden.

Criticisms of MySQL

Early versions of MySQL included few standard relational database management system (RDBMS) features, and the current production version still lacks many properties found in other SQL RDBMSs. This has led many database experts to criticize MySQL as falling short of being an RDBMS. Most relational theorists, such as Chris Date, Fabian Pascal, E.F. Codd, Hugh Darwen and their adherents would claim that because it falls short on several of Codd's 12 rules, like every other SQL DBMS, it shouldn't be considered relational.

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. [11] 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 allows storing a date with a day beyond the last day of a month with less than 31 days, and arithmetic operations are vulnerable to either integer overflow or floating point truncation ([12]). These values are treated according to the SQL standards in MySQL version 5 through the use of special SQL Modes.

Earlier versions of the MySQL manual included claims that certain missing features (considered essential for SQL-compliant RDBMSs) 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. [13] Another section claimed that a DBMS lacking transactions can provide data-integrity assurances as reliably as one supporting transactions—conflating the issue of transactional integrity with that of saving data when the database server loses power. [14] Since these claims contradicted basic principles of relational database design, they caused MySQL to be ridiculed by some database experts. Regardless of whether they were right or not, these claims are omitted in more recent versions of the manual. MySQL today allows some support for previously-dismissed features of relational integrity checking and transactions.

When the beta version of MySQL 5.0 was released in March 2005, David Axmark, a co-founder of MySQL, said that "People have been criticising MySQL since we started for not having stored procedures, triggers and views," and "We're fixing 10 years of criticism in one release." [15] MySQL 5.0's 13 October build 5.0.15 was released for production use on 24 October 2005, after more than two million downloads in the 5.0 beta cycle.

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. It stands up to competition quite well in read-intensive web applications, which is its most common niche.

License issues

Some users have also criticized MySQL AB's position on the licensing of the software. A few open source projects, such as Asterisk PBX, have reduced support for MySQL due to licensing concerns. Further, there was some controversy regarding the distribution of GPLed MySQL library files with other open source applications. The biggest controversy arose with PHP, which has a license incompatible with the GPL. This was later resolved when MySQL created a license exception that explicitly allows the inclusion of the MySQL client library in open source projects that are licensed under a number of OSI-compliant Open Source licenses, including the PHP license. [16]

In September 2005, MySQL AB and SCO forged a partnership for "joint certification, marketing, sales, training and business development work for a commercial version of the database for SCO's new OpenServer 6 version of Unix". SCO raised controversy beginning in 2003 with a number of high-profile patent lawsuits related to the Linux Operating System. Various MySQL employees expressed that the company was committed to serving its end users, regardless of their operating system choice, that the company would leave it to the courts to resolve the SCO licensing controversy, and that other common open source databases have also been ported to, and support, SCO OpenServer.

In October 2005, Oracle Corporation acquired Innobase Oy, the Finnish company that developed the InnoDB storage engine that allows MySQL to provide such functionality as transactions and foreign keys. A press release by Oracle that was issued after the acquisition mentioned that the contracts that make the company's software available to MySQL AB come up for renewal (and presumably renegotiation) some time in 2006. During the MySQL Users Conference in April 2006, MySQL issued a press release which confirmed that MySQL and Innobase Oy agreed to a multi-year extension of their licensing agreement. [17]

In February 2006, Oracle Corporation acquired Sleepycat Software [18]π, makers of the Berkeley DB, another storage engine used by MySQL.


  • The dolphin symbol in the MySQL logo was given the Swati name Sakila in October 2002 after a naming contest. [19]


  • MySQL was first released internally on May 23, 1995
  • Windows version released on January 8, 1998 for Windows 95 and NT

Prominent users

  • Apple - for dynamic pages on, also many in-house projects
  • - for many in-house projects
  • Cox Communications - the fourth largest cable-television provider in the United States, has more than 3,600 tables and two billion rows of data in their databases and handles approximately two million inserts every hour.
  • Craigslist
  • Digg - Popular news site.
  • GameFAQs - popular gaming site, more than 2000 users online at any point of the day.
  • Google - for the search engine's AdWords program
  • Gumtree - the UK's biggest classifieds site
  • LiveJournal - around 300 million page views per day
  • NASA - converted an Oracle-based acquisition system to MySQL [20]
  • Omniture
  • RightNow
  • Sabre, and its travel reservation system Travelocity [21]
  • Slashdot - with around 150 million page views per day.
  • Yahoo! - for many mission-critical applications
  • 2006 MySQL Application of the Year winners
    • Nokia, using MySQL Cluster to maintain real-time information about mobile network users.
    • flickr, Using MySQL in a Scale-out architecture to manage millions of photos and users.
    • NetQOS, embeds MySQL to manage the worlds largest networks including Chevron, American Express and Boeing.
  • 2005 MySQL Application of the Year winners
    • CNET Networks
    • Friendster, more than 85 million dynamic page views per day, able to support more than 1.5 billion MySQL queries per day
    • Wikipedia, more than 200 million queries and 1.2 million updates per day with peak loads of 11,000 queries per second

See also

Wikibooks has more about this subject:
  • MySQL Cluster
  • MaxDB, another database marketed by MySQL AB
  • PostgreSQL
  • Firebird
  • Comparison of relational database management systems

External links

  • MySQL database website
  • Planet MySQL - an aggregation of MySQL-related blogs
  • MySQL Forge
  • MySQL Users Conference
  • MySQL General Purpose Stored Routines Library
  • MySQL 5.1 testing environment


  • MySQL Manual
  • MySQL Roadmap
  • MySQL blog Articles
  • #mysql channel documentation wiki
  • MySQL Gotchas description of many features in MySQL, which work as advertised, but not as those used to other databases may expect

Articles and guides

  • Introduction to MySQL
  • Blog by Peter Zaitsev/Vadim Tkachenko on MySQL Performance Optimization
  • Database Journal articles on MySQL
  • MySQL and UTF-8 in Web Applications


Retrieved from ""