August 27, 2010

MySQL- The Most Popular Relational Database Management System (RDBMS)

MySQL is a relational
database management system (RDBMS)  that has more than 11 million
installations.   MySQL is named after Monty Widenius's daughter My.
The program runs as a server providing multi-user access to a number of
databases.


The project has made its source code available under the terms of the GNU
General Public License, as well as under a variety of proprietary agreements.
MySQL is owned and sponsored by a single for-profit firm, the Swedish company
MySQL AB, now a subsidiary of Sun Microsystems . As of 2009 Oracle Corporation
began the process of acquiring Sun Microsystems.



MySQL is often used in free software projects that require a full-featured
database management system, such as WordPress, phpBB and other software built on
the LAMP software stack. It is also used in many high-profile, large-scale World
Wide Web products including Wikipedia, Google and Facebook.

[header=Applications of MySql]

Applications of MySql
Many web applications use MySQL as
the database component of a LAMP software stack. Its popularity for use with web
applications is closely tied to the popularity of PHP, which is often combined
with MySQL. Several high-traffic web sites (including Flickr, Facebook,
Wikipedia, Google (though not for searches), Nokia and YouTube use MySQL for
data storage and logging of user data.



MySQL code uses C and C++. The SQL parser uses yacc and a home-brewed lexer,
sql_lex.cc



MySQL works on many different system platforms, including AIX, BSDi, FreeBSD,
HP-UX, i5/OS, Linux, Mac OS X, NetBSD, Novell NetWare, OpenBSD, OpenSolaris,
eComStation, OS/2 Warp, QNX, IRIX, Solaris, Symbian, SunOS, SCO OpenServer, SCO
UnixWare, Sanos, Tru64 and Microsoft Windows. A port of MySQL to OpenVMS also
exists.



All major programming languages with language-specific APIs include Libraries
for accessing MySQL databases. In addition, 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. The MySQL server
and official libraries are mostly implemented in ANSI C/ANSI C++.



To administer MySQL databases one can use the included command-line tool
(commands: mysql and mysqladmin). Potential users may also download from the
MySQL site: GUI administration tools: MySQL Administrator, MySQL Migration
Toolkit and MySQL Query Browser. The GUI tools are now included in one package
called MySQL GUI Tools.



In addition to the above-mentioned tools developed by MySQL AB, several other
commercial and non-commercial tools integrate with MySQL. Examples include
Navicat Free Lite Edition, AnySQL Maestro Freeware Edition or SQLyog Community
Edition, they are free desktop based GUI tools, and phpMyAdmin, a free Web-based
administration interface implemented in PHP.

 
[header=Deployment]
Deployment

MySQL can be built and installed manually from source code, but this can be
tedious so it is more commonly installed from a binary package unless special
customizations are required. On most Linux distributions the package management
system can download and install MySQL with minimal effort, though further
configuration is often required to adjust security and optimization settings.xxx



Though MySQL began as a low-end alternative to more powerful proprietary
databases, it has gradually evolved to support higher-scale needs as well.



It is still most commonly used in small to medium scale single-server
deployments, either as a component in a LAMP based web application or as a
standalone database server. Much of MySQL's appeal originates in its relative
simplicity and ease of use, which is enabled by an ecosystem of open source
tools such as phpMyAdmin or a pre-integrated TurnKey MySQL appliance that is
ready-to-use without manual configuration or setup.



In the medium range, MySQL can be scaled by deploying it on more powerful
hardware, such as a multi-processor server with gigabytes of memory.



There are however limits to how far performance can scale on a single server, so
on larger scales, multi-server MySQL deployments are required to provide
improved performance and reliability. A typical high-end configuration can
include a powerful master database which handles data write operations and is
replicated to multiple slaves that handle all read operations. The master server
synchronizes continually with its slaves so in the event of failure a slave can
be promoted to become the new master, minimizing downtime. Further improvements
in performance can be achieved by caching the results from database queries in
memory using memcached, or breaking down a database into smaller chunks called
shards which can be spread across a number of distributed server clusters.

 
[header=Features]

Features

As of April 2009, MySQL offers MySQL 5.1 in two different variants: the MySQL
Community Server and Enterprise Server. They have a common code base and include
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


  • INFORMATION_SCHEMA


  • 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, MySQL
    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 support (i.e.
    Master-Master Replication & Master-Slave 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 and
    UCS-2 encoded strings are limited to the BMP)



  • Partial ACID compliance (full
    compliance only when using the non-default storage engines InnoDB, BDB and
    Cluster)



  • Shared-nothing clustering through
    MySQL Cluster



  • Hot backup (via mysqlhotcopy)
    under certain conditions

The developers release monthly
versions of the MySQL Enterprise Server. The sources can be obtained either from
MySQL's customer-only Enterprise site or from MySQL's Bazaar repository, both
under the GPL license. The MySQL Community Server is published on an unspecified
schedule under the GPL and contains all bug fixes that were shipped with the
last MySQL Enterprise Server release. Binaries are no longer provided by MySQL
for every release of the Community Server.

[header=Distinguishing Features]
Distinguishing features

MySQL implements the following features, which some other RDBMS systems may not:


  • Multiple storage engines, allowing
    one to choose the one that is most effective for each table in the application
    (in MySQL 5.0, storage engines must be compiled in; in MySQL 5.1, storage
    engines can be dynamically loaded at run time):


    • Native storage engines (MyISAM,
      Falcon, Merge, Memory (heap), Federated, Archive, CSV, Blackhole, Cluster,
      Berkeley DB, EXAMPLE, and Maria)



    • Partner-developed storage
      engines (InnoDB, solidDB, NitroEDB, Infobright (formerly Brighthouse),
      Kickfire, XtraDB)



    • Community-developed storage
      engines (memcache_engine, httpd, PBXT, Revision Engine)



    • Custom storage engines


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

[header=Support/Licensing]
Support and licensing

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



In addition to official product support from Sun, other companies offer support
and services related to usage of MySQL. For example, Percona offers services
related to optimization and Monty Program Ab offers non-recurring engineering.



Buyers of MySQL Enterprise have access to binaries and software certified for
their particular operating system, and access to monthly binary updates with the
latest bug-fixes. Several levels of Enterprise membership are available, with
varying response times and features ranging from how to and emergency support
through server performance tuning and system architecture advice. The MySQL
Network Monitoring and Advisory Service monitoring tool for database servers is
available only to MySQL Enterprise customers.



Potential users can install MySQL Server as free software under the GNU General
Public License (GPL), and the MySQL Enterprise subscriptions include a GPL
version of the server, with a traditional proprietary version available on
request at no additional cost for cases where the intended use is incompatible
with the GPL.



Both the MySQL server software itself and the client libraries use
dual-licensing distribution. Users may choose the GPL, 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.



Customers that do not wish to follow the terms of the GPL may purchase a
proprietary license.



Like many open-source programs, MySQL has trademarked its name, which others may
use only with the trademark holder's permission.

[header=Corporate History]

Corporate backing history

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. After the acquisition, an Oracle
press release mentioned that the contracts that make the company's software
available to MySQL AB would be due for renewal (and presumably renegotiation)
some time in 2006. During the MySQL Users Conference in April 2006, MySQL issued
a press release that confirmed that MySQL and Innobase OY agreed to a
"multi-year" extension of their licensing agreement.



In February 2006, Oracle Corporation acquired Sleepycat Software, makers of the
Berkeley DB, a database engine providing the basis for another MySQL storage
engine.



In April 2009, Oracle Corporation entered into an agreement to purchase Sun
Microsystems, current owners of the MySQL intellectual property. Sun's board of
directors unanimously approved the deal, it was also approved by Sun's
shareholders, and by the U.S. government on August 20, 2009. On December 14
2009, Oracle pledged to continue to enhance MySQL.

About the Author

Tomboy

Author & Editor

Has laoreet percipitur ad. Vide interesset in mei, no his legimus verterem. Et nostrum imperdiet appellantur usu, mnesarchum referrentur id vim.

Post a Comment

 
Iwebslog Blog © 2015 - Designed by Templateism.com