MySQL
is an open-source relational database management system (RDBMS). Its name
is a combination of "My", the name of co-founder Michael Widenius's daughter, and
"SQL", the abbreviation for Structured Query Language. A relational
database organizes data into one or more data tables in which data types may be
related to each other; these relations help structure the data. SQL is a language
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).In 2010, when Oracle acquired Sun,
Widenius forked the open-source MySQL project to create MariaDB.
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. MySQL is also
used by many popular websites, including Facebook, Flickr, MediaWiki, Twitter,
and YouTube.
MySQL is a very popular open-source relational database management system
(RDBMS).
What is MySQL?
MySQL is a relational database management system
MySQL is open-source
MySQL is free
MySQL is ideal for both small and large applications
MySQL is very fast, reliable, scalable, and easy to use
MySQL is cross-platform
MySQL is compliant with the ANSI SQL standard
MySQL was first released in 1995
MySQL is developed, distributed, and supported by Oracle Corporation
MySQL is named after co-founder Monty Widenius's daughter: My
Who Uses MySQL?
Huge websites like Facebook, Twitter, Airbnb, Booking.com, Uber, GitHub,
YouTube, etc.
Content Management Systems like WordPress, Drupal, Joomla!, Contao, etc.
A very large number of web developers around the world
Show Data On Your Web Site
To build a web site that shows data from a database, you will need:
An RDBMS database program (like MySQL)
A server-side scripting language, like PHP
To use SQL to get the data you want
To use HTML / CSS to style the page
Features
MySQL is offered under two different editions: the open source MySQL Community
Server and the proprietary Enterprise Server. MySQL Enterprise Server is differentiated
by a series of proprietary extensions which install as server plugins, but otherwise
shares the version numbering system and is built from the same code base.
Major features as available in MySQL 5.6:
A broad subset of ANSI SQL 99, as well as extensions
Cross-platform support
Stored procedures, using a procedural language that closely adheres to SQL/PSM
Triggers
Cursors
Updatable views
Online Data Definition Language (DDL) when using the InnoDB Storage Engine.
Information schema
Performance Schema that collects and aggregates statistics about server execution
and query performance for monitoring purposes.
A set of SQL Mode options to control runtime behavior, including a strict mode to
better adhere to SQL standards.
X/Open XA distributed transaction processing (DTP) support; two phase commit as
part of this, using the default InnoDB storage engine
Transactions with savepoints when using the default InnoDB Storage Engine. The
NDB Cluster Storage Engine also supports transactions.
ACID compliance when using InnoDB and NDB Cluster Storage Engines
SSL support
Query caching
Sub-SELECTs (i.e. nested SELECTs)
Built-in replication support
o Asynchronous replication: master-slave from one master to many slaves or
many masters to one slave
o Semi synchronous replication: Master to slave replication where the master waits
on replication
o Synchronous replication: Multi-master replication is provided in MySQL Cluster.
o Virtual Synchronous: Self managed groups of MySQL servers with multi master
support can be done using: Galera Cluster or the built in Group Replication
plugin
Full-text indexing and searching
Embedded database library
Unicode support
Partitioned tables with pruning of partitions in optimizer
Shared-nothing clustering through MySQL Cluster
Multiple storage engines, allowing one to choose the one that is most effective for
each table in the application.[c]
Native storage engines InnoDB, MyISAM, Merge, Memory (heap), Federated,
Archive, CSV, Blackhole, NDB Cluster.
Commit grouping, gathering multiple transactions from multiple connections together
to increase the number of commits per second.
The developers release minor updates of the MySQL Server approximately every two
months. The sources can be obtained from MySQL's website or from
MySQL's GitHub repository, both under the GPL license.
Limitations
When using some storage engines other than the default of InnoDB, MySQL does not
comply with the full SQL standard for some of the implemented functionality, including
foreign key references. Check constraints are parsed but ignored by all storage engines
before MySQL version 8.0.15.
Up until MySQL 5.7, triggers are limited to one per action / timing, meaning that at most
one trigger can be defined to be executed after an INSERT operation, and one
before INSERT on the same table. No triggers can be defined on views.
MySQL database's inbuilt functions like UNIX_TIMESTAMP() will return 0 after
03:14:07 UTC on 19 January 2038. Recently, there had been an attempt to solve the
problem which had been assigned to the internal queue.