Katana VentraIP

MySQL

MySQL (/ˌmˌɛsˌkjuːˈɛl/)[5] is an open-source relational database management system (RDBMS).[5][6] Its name is a combination of "My", the name of co-founder Michael Widenius's daughter My,[7] and "SQL", the acronym for Structured Query Language. A relational database organizes data into one or more data tables in which data may be related to each other; these relations help structure the data. SQL is a language that programmers use to create, modify and extract data from the relational database, as well as control user access to the database. In addition to relational databases and SQL, an RDBMS like MySQL works with an operating system to implement a relational database in a computer's storage system, manages users, allows for network access and facilitates testing database integrity and creation of backups.

MySQL is free and open-source software under the terms of the GNU General Public License, and is also available under a variety of proprietary licenses. MySQL was owned and sponsored by the Swedish company MySQL AB, which was bought by Sun Microsystems (now Oracle Corporation).[8] In 2010, when Oracle acquired Sun, Widenius forked the open-source MySQL project to create MariaDB.[9]


MySQL has stand-alone clients that allow users to interact directly with a MySQL database using SQL, but more often, MySQL is used with other programs to implement applications that need relational database capability. MySQL is a component of the LAMP web application software stack (and others), which is an acronym for Linux, Apache, MySQL, Perl/PHP/Python. MySQL is used by many database-driven web applications, including Drupal, Joomla, phpBB, and WordPress.[10] MySQL is also used by many popular websites, including Facebook,[11][12] Flickr,[13] MediaWiki,[14] Twitter,[15] and YouTube.[16]

Overview[edit]

MySQL is written in C and C++. Its SQL parser is written in yacc, but it uses a home-brewed lexical analyzer.[17] MySQL works on many system platforms, including AIX, BSDi, FreeBSD, HP-UX, ArcaOS, eComStation, IBM i, IRIX, Linux, macOS, Microsoft Windows, NetBSD, Novell NetWare, OpenBSD, OpenSolaris, OS/2 Warp, QNX, Oracle Solaris, Symbian, SunOS, SCO OpenServer, SCO UnixWare, Sanos and Tru64. A port of MySQL to OpenVMS also exists.[18]


The MySQL server software itself and the client libraries use dual-licensing distribution. They are offered under GPL version 2, or a proprietary license.[19]


Support can be obtained from the official manual.[20] Free support additionally is available in different IRC channels and forums. Oracle offers paid support via its MySQL Enterprise products. They differ in the scope of services and in price. Additionally, a number of third party organisations exist to provide support and services.


MySQL has received positive reviews, and reviewers noticed it "performs extremely well in the average case" and that the "developer interfaces are there, and the documentation (not to mention feedback in the real world via Web sites and the like) is very, very good".[21] It has also been tested to be a "fast, stable and true multi-user, multi-threaded SQL database server".[22]

First internal release on 23 May 1995

Version 3.19: End of 1996, from www.tcx.se

Version 3.20: January 1997

Windows version was released on 8 January 1998 for Windows 95 and NT

Version 3.21: production release 1998, from www.mysql.com

Version 3.22: alpha, beta from 1998

Version 3.23: beta from June 2000, production release 22 January 2001

[25]

Version 4.0: beta from August 2002, production release March 2003 ().

unions

Version 4.1: beta from June 2004, production release October 2004 ( and B-trees, subqueries, prepared statements).

R-trees

proof-of-concept

acquired MySQL AB in 2008.[28]

Sun Microsystems

[29]

Oracle acquired Sun Microsystems on 27 January 2010.[32][33]

[31]

The day Oracle announced the purchase of Sun, Michael "Monty" Widenius forked MySQL, launching , and took a swath of MySQL developers with him.[34]

MariaDB

A broad subset of , as well as extensions

ANSI SQL 99

Cross-platform support

using a procedural language that closely adheres to SQL/PSM[87]

Stored procedures

Triggers

Cursors

Updatable

views

Online (DDL) when using the InnoDB Storage Engine.

Data Definition Language

Information schema

Performance Schema that collects and aggregates statistics about server execution and query performance for monitoring purposes.

[88]

A set of SQL Mode options to control behavior, including a strict mode to better adhere to SQL standards.

runtime

distributed transaction processing (DTP) support; two phase commit as part of this, using the default InnoDB storage engine

X/Open XA

Transactions with when using the default InnoDB Storage Engine. The NDB Cluster Storage Engine also supports transactions.

savepoints

compliance when using InnoDB and NDB Cluster Storage Engines[89]

ACID

support

SSL

Query

caching

Sub- (i.e. nested SELECTs)

SELECTs

master-slave

Full-text and searching[b]

indexing

Embedded database library

support[a]

Unicode

Partitioned tables with pruning of partitions in optimizer

clustering through MySQL Cluster

Shared-nothing

Multiple storage engines, allowing one to choose the one that is most effective for each table in the application.

[c]

Native storage engines , MyISAM, Merge, Memory (heap), Federated, Archive, CSV, Blackhole, NDB Cluster.

InnoDB

Commit grouping, gathering multiple transactions from multiple connections together to increase the number of commits per second.

User interfaces[edit]

Graphical user interfaces[edit]

A graphical user interface (GUI) is a type of interface that allows users to interact with electronic devices or programs through graphical icons and visual indicators such as secondary notation, as opposed to text-based interfaces, typed command labels or text navigation.


Third-party proprietary and free graphical administration applications (or "front ends") are available that integrate with MySQL and enable users to work with database structure and data visually.

Application programming interfaces[edit]

Many programming languages with language-specific APIs include libraries for accessing MySQL databases. These include MySQL Connector/Net for .NET/CLI Languages,[118] and the JDBC driver for Java.[119]


In addition, an ODBC interface called MySQL Connector/ODBC allows additional programming languages that support the ODBC interface to communicate with a MySQL database, such as ASP or ColdFusion. The HTSQL – URL-based query method also ships with a MySQL adapter, allowing direct interaction between a MySQL database and any web client via structured URLs. Other drivers exists for languages like Python[120] or Node.js.[121]

Comparison of database administration tools

Comparison of MySQL database engines

Comparison of relational database management systems

Official website

at Oracle

MySQL

at Curlie

MySQL

Media related to MySQL at Wikimedia Commons