PDF version of this report
You must have Adobe Acrobat reader to view, save, or print PDF files. The
reader is available for free
download.
Oracle
MySQL Database
Copyright 2020, Faulkner Information Services. All
Rights Reserved.
Docid: 00018955
Publication Date: 2004
Report Type: PRODUCT
Preview
With its 2010 acquisition of Sun Microsystems, Oracle secured the MySQL
open source database management software (DBMS) platform for enterprise IT
environments. MySQL is designed to let users design and manage complex
applications and data sets and has gained a substantial share of the
overall DBMS market despite its open source status. The latest version
offers improvements in performance and scalability. The MySQL Server
8.0.0-dmr milestone release was announced in September 2016. The most
recent version is 8.0.19, which was launched in January 2020.
Report Contents:
Description
[return to top of this report]
MySQL, now owned by Oracle following its acquisition of Sun Microsystems,
is an open source database that uses Structured Query Language (SQL) to
let users design and manage large applications and data sets.
Related Faulkner Reports |
Oracle Company Profile |
MySQL was originally owned and operated by a firm named MySQL AB and
later was sold to Sun Microsystems. With its purchase of Sun, Oracle
gained the rights to the MySQL development project. However, the MySQL
source code is available under the terms of the GNU General Public License
along with a host of agreements. The popularity of MySQL expanded not only
because it is open source but because of its reliability. It is currently
considered a core part of the LAMP open source Web application software
stack along with Apache, Linux, and Perl/PHP/Python.
While open source, MySQL is considered a viable option for even the most
complex and mission-critical enterprise databases. Although it directly
competes with Oracle’s own 19c Database, Oracle has declared its
commitment to MySQL. At the April 2010 O’Reilly MySQL Conference, Oracle’s
chief corporate architect, Edward Screven, conveyed the company’s belief
that MySQL possesses certain valuable attributes that the 12c Database
does not. MySQL is able to reach the open source market, which is
something the Oracle Database has not been able to do. Additionally,
Screven reported that Oracle integrated the MySQL and InnoDB teams,
which resulted in performance improvements for the product.1
While MySQL has
been in use for over ten years and has changed hands multiple times, the
product has been expanded in recent years and now is an enterprise-level
solution that has been used by companies and organizations such as Adobe
Systems, Alcatel-Lucent, the Associated Press, Twitter, Wikipedia, Yahoo,
and YouTube. MySQL currently maintains a large share of the database
management software (DBMS) market and holds its own with both commercial
and open source rivals like Oracle, IBM, and Microsoft.2
MySQL is able to handle a host of demanding process, supporting a flood
of data, and process tens of thousands of operations simultaneously. The
DBMS can be used for a range of company-critical processes, such as
storing and analyzing data, powering complex Web 2.0, and cloud computing
environments. MySQL allows users to create and control server and client
programs and events, as well as search for data, from a common DBMS.
Developers in MySQL use SQL, a commonly-used database language, to
structure databases that can connect and query massive data sets and
programs. MySQL-based databases can house or connect to virtually any
application. The offering also features query and analysis capabilities to
allow users to conduct deep database searches, compare data, and analyze
performance.
Another desirable feature of MySQL is that the code is developed by an
open source community. Though owned by Oracle, the MySQL development and
code continues to be in the hands of the open source community. Employees
also have their hands in building new versions of MySQL. While users can
download MySQL for free, Oracle offers clients paid support, training, and
compatible software and hardware purchases.
In April 2016, Oracle released a critical path update (CPU) for MySQL. InfoWorld‘s
Rashid states that, “Oracle has switched to the Common Vulnerability
Scoring System 3.0 scale to indicate the severity of the flaws fixed in
the CPU.” The CPU offers 31 new security fixes for Oracle MySQL. InfoWorld
reports that, of these, four could be exploited remotely without
authentication: “Both critical vulnerabilities in MySQL Server’s packaging
subcomponent (CVE-2016-0705) and the critical vulnerability in MySQL
Server’s pluggable authentication subcomponent (CVE-2016-0639) affect
versions 5.6.29 and earlier as well as 5.7.11 and earlier. Oracle assigned
a CVSS 3.0 rating of 9.8 (CVSS 2.0 rating of 10.0) and warned that the
attack complexity for this flaw was low, meaning attackers don’t have to
meet any special requirements to access the bug.” The two other bugs can
be considered a high-priority.4
The MySQL Server 8.0.0-dmr milestone release was announced in September
2016.
In February 2017, attackers hijacked hundreds of MySQL databases,
deleting content, and leaving a ransom note asking for a 0.2 Bitcoin ($235
USD) payment. This attack originated in The Netherlands. Most recently, in
April 2017, it was determined that a programming blunder in MySQL can
potentially leak usernames and passwords to eavesdroppers.
In April 2019, Oracle released a critical patch update that included
fixes for 297 security flaws affecting several offerings, including MySQL.
Specifically, Oracle MySQL received fixes for 45 security flaws, four of
which could be remotely exploitable without authentication. In April 2020,
Oracle detailed 405 security vulnerabilities as part of its quarterly
Critical Patch Update Advisory, stating that 286 of those vulnerabilities
are remotely exploitable across nearly two dozen product lines. Thirteen
Oracle products were affected, including Oracle Financial Services
Applications, Oracle MySQL, Oracle Retail Applications, and Oracle Support
Tools.
MySQL Architecture
MySQL is a client/server system that consists of a multi-threaded SQL
server that supports different backends, client programs and libraries,
administrative tools, and application programming interfaces (APIs). MySQL
Server is also available as an embedded multi-threaded library that allows
users to link it to applications.
- Languages and APIs. The database is written in C and
C++, and works on a variety of platforms. It optimizes GNU Automake,
Autoconf, and Libtool for portability, and provides both transactional
and non-transactional storage engines. There are also a number of APIs
available for MySQL, including APIs for C, C++, Eiffel, Java, Perl, PHP,
Python, Ruby, and Tcl. - Security. MySQL offers a privilege and password
system that is flexible and secure, and also allows host-based
verification. All password traffic is encrypted when users connect to a
server. - Pluggable Storage Engine. MySQL features a Pluggable
Storage Engine Architecture designed to enable users to optimize the
database for their specific needs. The company delivers storage engines,
such as the InnoDB engine, that are designed for heavy-duty transaction
processing, high-traffic Web sites, terabyte-sized data warehouses, and
high availability applications. Due to its open source model, users can
also create custom storage engines for MySQL to meet their unique
requirements.
Figure 1 displays the MySQL Workbench.
Figure 1. MySQL Workbench
Source: MySQL
MySQL Versions
MySQL is available in a variety of editions, including the Community
Edition, Embedded (for OEMs and ISVs), Cluster Carrier Grade Edition
(CGE), Classic, Enterprise, and Standard. Each edition of MySQL is
outlined below.
- Community Edition – The MySQL Community Edition is
the freely downloadable version of the open source database, available
under the GPL license and is supported by a community of open source
developers. The MySQL Community Edition includes a pluggable storage
engine architecture and multiple storage engines such as InnoDB, MyISAM,
NDB (MySQL Cluster), Memory, Merge, Archive, CSV, and others. Other
notable features include MySQL Replication to improve application
performance and scalability, MySQL Partitioning to improve performance
and management of large database applications, stored procedures to
improve developer productivity, triggers to enforce complex business
rules at the database level, views to ensure sensitive information is
not compromised, information schema to provide simple access to
metadata, MySQL Connectors (such as ODBC, JDBC, and .NET) for building
applications in multiple languages, and the MySQL Workbench for visual
modeling, SQL development and administration. The software is currently
available on over 20 platforms and operating systems including Linux,
Unix, Mac and Windows. - MySQL Cluster Carrier Grade Edition (CGE) – MySQL
CGE, now in version 7.4, is a scalable ACID-compliant database that
combines 5 x 9 availability and open source technology. It has a
distributed, multi-master architecture. It is able to scale horizontally
on commodity hardware through SQL and NoSQL APIs. - Classic Edition – The MySQL Classic Edition is an
embedded database for ISVs, OEMs and VARs developing read-intensive
applications using the MyISAM storage engine. The edition supports over
20 platforms and operating systems including Linux, Unix, Mac and
Windows, and is only available to ISVs, OEMs and VARs to license as an
embedded database. - Standard Edition – MySQL Standard Edition helps
users deliver high-performance and scalable Online Transaction
Processing (OLTP) applications. The Standard Edition includes InnoDB,
making it a fully integrated transaction-safe, ACID compliant database.
In addition, the release features MySQL Replication for delivering high
performance and scalable applications. Also included is the MySQL
Workbench, which provides an integrated development, design and
administration environment to make developers and DBAs more productive. - Enterprise Edition – The Enterprise Edition of MySQL
builds on the Standard Edition with full commit, rollback, crash
recovery and row level locking capabilities, as well as Database
Partitioning to improve performance and management of very large
database environments. The DBMS also includes MySQL Enterprise Backup
for performing online “Hot” backups of databases and supports full,
incremental and partial backups, Point-in-Time Recovery and backup
compression. The MySQL Enterprise Monitor continuously monitors
databases and delivers alerts for potential problems, while the MySQL
Query Analyzer improves application performance by monitoring query
performance and accurately pinpointing SQL code that is causing a slow
down. Finally, the MySQL Workbench is a unified visual tool for database
architects, developers, and DBAs that provides data modeling, SQL
development, and comprehensive administration tools for server
configuration and user administration, and available on Windows, Linux
and Mac OS. - MySQL Embedded (OEM/ISV) – Provides cross-platform
flexibility, and support for over 20 platforms. It is designed to
provide fast installation, configuration, and integration.
Table 1 below outlines the features of included in the Cluster CGE,
Standard, and Enterprise versions of MySQL.
Feature |
Standard |
Enterprise |
Cluster CGE |
---|---|---|---|
MySQL |
Y |
Y |
Y |
MySQL |
Y |
Y |
Y |
MySQL |
Y |
Y |
Y |
MySQL |
N |
Y |
Y |
MySQL |
Y |
Y |
Y |
Storage |
Y |
Y |
Y |
Storage |
Y |
Y |
Y |
Storage |
N |
N |
Y |
MySQL |
N |
Y |
Y |
MySQL |
N |
Y |
Y |
MySQL |
N |
N |
Y |
MySQL |
N |
N |
Y |
MySQL Features
Some of MySQL’s notable features and components are outlined below.
MySQL Enterprise Server. MySQL Enterprise Server is the
company’s transaction-safe, ACID compliant database. The server software
delivers full commit, rollback, crash recovery, and row level locking
capabilities.
MySQL Connectors. MySQL has standard database driver
connectivity for using MySQL with applications and tools that are
compatible with ODBC and JDBC:
- Connector/ODBC – For Windows, Linux, Mac OS X, and Unix platforms
- Connector/Net – For .NET platforms and development
- Connector/J – For Java platforms and development
- Connector/Python – For Python platforms and development
- Connector/C++ – For C++ development
- Connector/C (libmysql) – A client library for C development
- MySQL native driver for PHP – The MySQL native driver for PHP is an
additional, alternative way to connect from PHP 5.3 or newer to the
MySQL Server 4.1 or newer
Enterprise Monitor. Enterprise Monitor continuously
monitors a client’s MySQL servers and alerts users to potential problems
before they impact the system. The Enterprise Monitor can recommend best
practices, identify security vulnerabilities, auto-detect groups and
monitor replication topologies. Figure 2 illustrates the MySQL Enterprise
Monitor.
Figure 2. MySQL Enterprise Monitor
Source: MySQL
MySQL Query Analyzer. MySQL Query Analyzer monitors
query performance to pinpoint SQL code that is causing a slow down.
Queries are presented in an aggregated view across all MySQL servers so
users can analyze code by total executions, total run time, total data
size, and by using drill downs into sampled executions and EXPLAIN
results. With the MySQL Query Analyzer, users can improve the SQL code
during active development, and continuously monitor and tune the queries
in production. MySQL Query Analyzer is installed with the Service Agent.
Figure 3 depicts the operations of the MySQL Query Analyzer.
Figure 3. MySQL Query Analyzer Interface
Source: MySQL
MySQL Installer. MySQL is a wizard-based installer. It
is 32 bit, but will install 32 bit and 64 bit binaries. MySQL Installer
includes MySQL Server; support connectors; workbench and sample models;
MySQL Notifier; MySQL for Excel; MySQL for Visual Studio; sample
databases; and documentation.
MySQL Workbench. MySQL Workbench provides DBAs and
developers an integrated tools environment for database design and
modeling; SQL development (replacing MySQL Query Browser); database
administration (replacing MySQL Administrator); and database migration.
MySQL Utilities. MySQL Utilities is a collection of
command-line utilities for maintaining and administering MySQL servers. It
includes admin utilities (clone, copy, compare, diff, export, import);
replication utilities (setup, configuration); and general utilities (disk
usage, redundant indexes, search meta data).
MySQL Proxy. This program resides between the client and
MySQL servers. It is able to monitor, analyze, or transform their
communication. It performs load balancing; failover; query analysis; query
filtering; and modification.
MySQL Cluster. MySQL Cluster is a write-scalable,
real-time, ACID-compliant transactional database. It is built with a
distributed, multi-master architecture and no single point of failure; it
is therefore designed to scale horizontally on commodity hardware with
auto-sharding (partitioning) accessed via SQL and NoSQL interfaces.
It is available as both open source and commercial editions. The Community
(OSS) Edition is available under the free software/opensource GNU General
Public License (commonly known as the “GPL”). MySQL Cluster is provided as
a separate download so that users can have access to builds from the
latest source releases of the MySQL Cluster Carrier Grade Edition. Figure
4 illustrates how the MySQL Cluster operates. Version 7.4 was launched in
February 2015. This new version provides up to 200 million reads per
second and enhanced high availability for online transaction processing.
Figure 4. MySQL Cluster Edition
Source: MySQL
MySQL Cluster Carrier Grade. MySQL Cluster Carrier Grade
provides telecom equipment manufacturers and network service providers
with database services and applications for converged networks. Cluster
Carrier Grade offers a distributed architecture, enables servers to share
processing within a cluster, supports up to 255 nodes, and supports
asynchronous replication between clusters within the data center or across
geographies.
Strengths
MySQL is designed
for ease of use. MySQL employs languages and interfaces that are familiar
to DBAs and programmers, and the DBMS can be modified to meet a variety of
needs, as well as handle large workloads. MySQL can also be deployed in
parts or as a total implementation. MySQL has no fee for software
licenses, arguably reducing total cost of ownership (TCO). While it is
open source, MySQL’s maturity is shown by the number of major enterprise
and public organizations that use and trust it.
As an open source application, MySQL is compatible with a number of
third-party applications. Developers continue to update open source
software to make it more stable, diverse, and mature, meaning that MySQL’s
compatibility and usability features will only increase.5 MySQL
is also increasing its compatibility with servers and software from Oracle
and its various application lines, while Oracle also offers combined
product purchases and support agreements.
Oracle’s gaining of MySQL, through its Sun Microsystems acquisition,
enables the company to become a leader in the open source DBMS market. A
related purchase came when Oracle purchased Innobase, which developed the
InnoDB storage engine that enables MySQL to include features such as
transactions and foreign keys.
End users and rivals such as IBM are seeing the value of open source
DBMS. MySQL arguably has a large share of the DBMS market. MySQL’s market
share is hard to quantify, as no one knows how many times it has been
downloaded and implemented. IBM’s interest in buying Sun Microsystems in
early 2009 is thought to have been partly due to its interest in MySQL,
which would have given IBM an even larger share of the DBMS market.6
Now that it falls under the Oracle umbrella, the product is poised
to gain an even greater share of the market.
Limitations
As it is open source, MySQL makes no promises for service levels,
although there are both free support options, as well as paid support
options such as the Oracle support offerings. Some argue that using MySQL
will increase TCO, rather than lowering it, because users may need to
purchase expert training, support, IT resources to optimize their MySQL
installation. Additionally, as Prickett Morgan notes, “…MySQL does not
really scale that well, which is one reason that hyperscale companies
created NoSQL and NewSQL alternatives.”7 Also, Endsley states
that MySQL is not as mature as it competitors, is not community-owned, and
has lost the support of some major allies, such as Red Hat.8
Applications
[return to top of this report]
MySQL powers applications large and small, ranging from transaction
processing to health records cataloging, data network monitoring, and
more. Notable users include eBay, Google, Nokia, and many others.
Government users include the US Army, Navy, Department of Defense, and
agencies and organizations worldwide. Table 2 lists some of MySQL’s
specific applications.
Application | Examples |
---|---|
Content |
Web 2.0 |
Performance Analysis |
The |
OEM/ISV |
MySQL |
Environment
[return to top of this report]
MySQL software operates in a number of IT environments. It can run on
more than 20 OS platforms including Microsoft Windows; Apple Mac OS;
Linux/Unix; and Solaris. Users should check to see if MySQL is available
for their specific environment and which distribution of MySQL server
would be best, checking the reference manuals and documentation on MySQL’s
Web site.
Support
[return to top of this report]
Oracle offers its MySQL Enterprise customers a number of support options,
including technical support, training courses, certification, and both
short- and long-term consulting. Free resources include support boards,
community groups, and documentation. Users may select Basic, Silver, Gold,
and Premium. Table 3 outlines each support option.
Feature |
Basic |
Silver |
Gold |
Platinum |
---|---|---|---|---|
MySQL Server |
Pro |
Pro |
Pro |
Pro |
Certified, Optimized Software |
Yes |
Yes |
Yes |
Yes |
Maintenance, Updates, and |
Yes |
Yes |
Yes |
Yes |
Custom MySQL Builds |
No |
No |
No |
Option |
Technical Advisor Alert |
Yes |
Yes |
Yes |
Yes |
Update Advisor |
Yes |
Yes |
Yes |
Yes |
Knowledge Base |
Yes |
Yes |
Yes |
Yes |
Number of Incidents |
2 |
Unlimited |
Unlimited |
Unlimited |
Web Access |
Yes |
Yes |
Yes |
Yes |
Phone Access |
No |
8 to 5 (M to F) |
24×7 |
24×7 |
Max Initial Response Time |
2 business days |
4 hours |
2 hours |
30 minutes |
Emergency Response Time |
No |
No |
30 minutes |
30 minutes |
Remote Troubleshooting |
No |
No |
Yes |
Yes |
Schema Review |
No |
No |
No |
Yes |
Query Review |
No |
No |
No |
Yes |
Performance Tuning |
No |
No |
No |
Yes |
Technical Account Manager |
No |
No |
No |
Option |
Proactive Case Management |
No |
No |
No |
Option |
Scheduled Onsite Visits |
No |
No |
No |
Option |
Comprehensive Indemnification |
No |
No |
Option |
Option |
Pricing
[return to top of this report]
MySQL offers a free Community edition, which can be downloaded under the
GPL license from MySQL’s Web
site. Users also have the option to purchase support or contact the
company’s sales team for further purchasing options. Sales teams are
available for enterprises and OEMs, and MySQL Enterprise can be bought
with products from technology vendors. Products and services for US
government entities can be bought through the GSA schedule. Table 4
outlines prices for MySQL.
Support Option |
Purchase Price (USD) per Year |
---|---|
MySQL Standard (1 year |
$2,000 |
MySQL Standard (1 year subscription, 5+ socket server) |
$4,000 |
MySQL Enterprise (1 year |
$5,000 |
MySQL Enterprise (1 year subscription, 5+ socket server) |
$10,000 |
MySQL Cluster Carrier Grade |
$10,000 |
MySQL Cluster Carrier Grade |
$20,000 |
Competitors
[return to top of this report]
Oracle’s MySQL Enterprise faces a number of competitors in the database
market. Among the leading rivals are Oracle’s own database, widely
considered the overall market leader in the database space. IBM’s DB2,
Microsoft’s SQL Server, Sybase’s Adaptive Server Enterprise, and the
Teradata Warehouse are also some of the notable players in the DBMS
market.
In terms of open source databases, the leading competitors for MySQL are
PostgreSQL and Ingres, which had been acquired by Actian. The PostgreSQL
solution in particular is quickly becoming a threat to the popularity of
MySQL. This is due to two major factors. First, the PostgreSQL database
has made major advances over the last few years, and also features
compatibility with solutions from Oracle, IBM, and others. Secondly, there
is a significant distrust of Oracle’s ultimate plans with MySQL, despite
Oracle’s contention that it plans to not make any changes to it openness
of MySQL. Many in the open source community are shifting away from MySQL,
as well as major organizations such as Red Hat, an Oracle competitor.
References
1 Peter Wayner. “Oracle Chief Architect Unveils MySQL Roadmap.” IT
World Canada. April 13, 2010.
2 Eric Lai. “Experts: MySQL Could Enable IBM to Take Over the
Database Market.” Computerworld. April 7, 2009.
3 Doug Henschen. “Oracle MySql 5.7 Release Boosts
Performance, Scalability.” InformationWeek. April 1, 2014.
4 Fahmida Y. Rashid. “Oracle Security Update Includes Java,
MySQL, Oracle Database Fixes.” InfoWorld. April 20, 2016.
5 Jeffrey Schwartz. “Database Growth Points To Open Source.”
Redmond Developer News. July 24, 2008.
6 Colleen Graham, Dan Sommer, and Bhavish Sood. “Market
Share: Relational Database Management Systems by Operating System,
Worldwide, 2006.” Gartner. June 13, 2007.
7 Timothy Prickett Morgan. “Deep Engine Revs MySQL, Scales to
Trillion Rows.” The Platform. April 7, 2015.
8 Rick Endsley. “5 Reasons It’s Time to Ditch MySQL.” SmartBear.
July 10, 2013.
Web Links
[return to top of this report]
- Actian: http://www.actian.com/
- IBM: http://www.ibm.com/
- Microsoft: http://www.microsoft.com/
- PostgreSQL: http://www.postgresql.org/
- Sybase: http://www.sybase.com/
- Teradata: http://www.teradata.com/
About the Author
[return to top of this report]
Sherry Kercher is an editor for Faulkner Information
Services. She holds a master’s degree in library and information science,
and tracks and writes about storage, communication networks and equipment,
and Internet technologies.
[return to top of this report]