What is MySQL?
MySQL is a open source Relational Database Management System.
MySQL is very fast reliable and flexible Database Management System.
It provides a very high performance and it is multi threaded and
multi user Relational Database management system.
MySQL is one of the most popular relational database Management
System on the web. The MySQL Database has become the world's most
popular open source Database, because it is free and available on
almost all the platforms. The MySQL can run on Unix , window, and Mac
OS.
MySQL is used for the internet applications as it provides good
speed and is very secure. MySQL was developed to manage large volumes
of data at very high speed to overcome the problems of existing
solutions. MySQL can be used for verity of applications but it is
mostly used for the web applications on the internet.
Pronounced "my ess cue el" (each letter separately) and
not "my SEE kwill." MySQL is an open source RDBMS that
relies on SQL for processing the data in the database. MySQL provides
APIs for the languages C, C++, Eiffel, Java, Perl, PHP and Python. In
addition, OLE DB and ODBC providers exist for MySQL data connection
in the Microsoft environment. A MySQL .NET Native Provider is also
available, which allows native MySQL to .NET access without the need
for OLE DB.
MySQL is developed, supported and marketed by MySQL AB. The
database is available for free under the terms of the GNU General
Public License (GPL) or for a fee to those who do not wish to be
bound by the terms of the GPL.
Features of MySQL
The following list shows the most important properties of MySQL.
This section is directed to the reader who already has some knowledge
of relational databases. We will use some terminology from the
relational database world without defining our terms exactly. On the
other hand, the explanations should make it possible for database
novices to understand to some extent what we are talking about.
Relational Database System: Like almost all other database
systems on the market, MySQL is a relational database system.
Client/Server Architecture: MySQL is a client/server
system. There is a database server (MySQL) and arbitrarily many
clients (application programs), which communicate with the server;
that is, they query data, save changes, etc. The clients can run on
the same computer as the server or on another computer (communication
via a local network or the Internet).
Almost all of the familiar large
database systems (Oracle, Microsoft SQL Server, etc.) are
client/server systems. These are in contrast to the file-server
systems, which include Microsoft Access, dBase and FoxPro. The
decisive drawback to file-server systems is that when run over a
network, they become extremely inefficient as the number of users
grows.
SQL compatibility: MySQL supports as its database language
-- as its name suggests – SQL (Structured Query Language). SQL is a
standardized language for querying and updating data and for the
administration of a database. There are several SQL dialects (about
as many as there are database systems). MySQL adheres to the current
SQL standard (at the moment SQL:2003), although with significant
restrictions and a large number of extensions.
Through the configuration setting sql-mode you can make the MySQL
server behave for the most part compatibly with various database
systems. Among these are IBM DB/2 and Oracle.
SubSELECTs: Since version 4.1, MySQL is capable of
processing a query in the form SELECT * FROM table1 WHERE x IN
(SELECT y FROM table2) (There are also numerous syntax variants for
subSELECTs.)
Views: Put simply, views relate to an SQL query that is
viewed as a distinct database object and makes possible a particular
view of the database. MySQL has supported views since version 5.0.
Stored procedures: Here we are dealing with SQL code that
is stored in the database system. Stored procedures (SPs for short) are generally used to simplify
certain steps, such as inserting or deleting a data record. For
client programmers this has the advantage that they do not have to
process the tables directly, but can rely on SPs. Like views, SPs
help in the administration of large database projects. SPs can also
increase efficiency. MySQL has supported SPs since version 5.0.
Triggers: Triggers are SQL commands that are automatically
executed by the server in certain database operations (INSERT,
UPDATE, and DELETE). MySQL has supported triggers in a limited form
from version 5.0, and additional functionality is promised for
version 5.1.
Unicode: MySQL has supported all conceivable character sets
since version 4.1, including Latin-1, Latin-2, and Unicode (either in
the variant UTF8 or UCS2).
User interface: There are a number of convenient user
interfaces for administering a MySQL server.
Full-text search: Full-text search simplifies and
accelerates the search for words that are located within a text
field. If you employ MySQL for storing text (such as in an Internet
discussion group), you can use full-text search to implement simply
an efficient search function.
Replication: Replication allows the contents of a database
to be copied (replicated) onto a number of computers. In practice,
this is done for two reasons: to increase protection against system
failure (so that if one computer goes down, another can be put into
service) and to improve the speed of database queries.
Transactions: In the context of a database system, a
transaction means the execution of several database operations as a
block. The database system ensures that either all of the operations
are correctly executed or none of them. This holds even if in the
middle of a transaction there is a power failure, the computer
crashes, or some other disaster occurs. Thus, for example, it cannot
occur that a sum of money is withdrawn from account A but fails to be
deposited in account B due to some type of system error.
Transactions also give programmers the possibility of interrupting
a series of already executed commands (a sort of revocation). In many
situations this leads to a considerable simplification of the
programming process. In spite of popular opinion, MySQL has supported
transactions for a long time. One should note here that MySQL can
store tables in a variety of formats. The default table format is
called MyISAM, and this format does not support transactions. But
there are a number of additional formats that do support
transactions. The most popular of these is InnoDB, which will be
described extensively in this book.
Foreign key constraints: These are rules that ensure that
there are no cross references in linked tables that lead to nowhere.
MySQL supports foreign key constraints for InnoDB tables.
GIS functions: Since version 4.1, MySQL has supported the
storing and processing of two-dimensional geographical data. Thus
MySQL is well suited for GIS (geographic information systems)
applications.
Programming languages: There are quite a number of APIs
(application programming interfaces) and libraries for the
development of MySQL applications. For client programming you can
use, among others, the languages C, C++, Java, Perl, PHP, Python, and
Tcl.
ODBC: MySQL supports the ODBC interface
Connector/ODBC.
This allows MySQL to be addressed by all the usual programming
languages that run under Microsoft Windows (Delphi, Visual Basic,
etc.). The ODBC interface can also be implemented under Unix, though
that is seldom necessary.
Windows programmers who have migrated to Microsoft's new .NET
platform can, if they wish, use the ODBC provider or the .NET
interface Connector/NET.
Platform independence: It is not only client applications
that run under a variety of operating systems; MySQL itself (that is,
the server) can be executed under a number of operating systems. The
most important are Apple Macintosh OS X, Linux, Microsoft Windows,
and the countless Unix variants, such as AIX, BSDI, FreeBSD, HP-UX,
OpenBSD, Net BSD, SGI Iris, and Sun Solaris.
Speed: MySQL is considered a very fast database program.
This speed has been backed up by a large number of benchmark tests
(though such tests -- regardless of the source -- should be
considered with a good dose of skepticism).
Limitations
When MySQL is used with standard
tables (table type MyISAM), then locking, that is, the temporary
blocking of access to or alteration of database information, is in
operation only for entire tables (table locking). You can circumvent
the table-locking problem by implementing transaction-capable table
formats, such as InnoDB, that support row locking.
- In using MyISAM tables, MySQL is not able to execute hot
backups, which are backups during operation without blocking the
tables with locks. Here again, the solution is InnoDB, though here
the hot backup function is available only in the form of a
commercial supplement.
- Many database systems offer
the possibility of defining custom data types. MySQL does not
support such functionality, nor is any currently planned.
MySQL is in fact a very fast
database system, but it is very limited in its usability for
real-time applications, and it offers no OLAP functions.
OLAP
stands for online analytical processing, and refers to special
methods for the management and analysis of multidimensional data.
OLAP-capable database systems are often called data warehouses.
MySQL supports, since version 5.0,
stored procedures and triggers, but these functions have not yet
fully matured (this applies especially to triggers) and do not yet
have the same stability and plenitude of functions offered by
commercial database systems.
- Similar restrictions hold as well for the GIS functions
introduced in version 4.1. Commercial database systems offer in some
cases considerably greater functionality.
MySQL Internals,
MySQL HighAvailability,
MySQL Performance Tuning,
MySQL Query Optimization,
MySQL performance,
MySQL Fabric,
MySQL HA,
MySQL Installation,
MySQL Upgrade,
InnoDB Performance Tuning,
InnoDB Buffer Pool Size,
MySQL Performance Tuning,
MySQL ClusterMySQL Latest News,
News and Events,
MySQL Customers