MySQL - Basic Information

MySQL is the world's most popular open source database software, with over 100 million copies of its software downloaded or distributed throughout its history. With its superior speed, reliability, and ease of use, MySQL has become the preferred choice for Web, Web 2.0, SaaS, ISV, Telecom companies and forward-thinking corporate IT Managers because it eliminates the major problems associated with downtime, maintenance and administration for modern, online applications.

MySQL delivers a very fast, multi-threaded, multi-user, and robust SQL (Structured Query Language) database server. First released in January, 1998, MySQL is introduced by company MySQL AB. MySQL AB is a commercial company, founded by the MySQL developers. MySQL AB was originally established in Sweden by David Axmark, Allan Larsson, and Michael "Monty" Widenius.

In 26 February 2008 Sun Microsystems, Inc (a well-known company developed Java).  Acquired MySQL AB, the company behind MySQL, the world's most popular open source database. Now MySQL is a subsidiary of Sun Microsystems, which holds the copyright to most of the codebase.

MySQL is very popular because MySQL run across every major operating system - Linux, Windows, Solaris and the Mac; and every major system platform, from IBM, Intel, AMD, Dell, Sun and HP; and provides application program interfaces (APIs) for all major programming languages, including C, C++, Eiffel, Java, Perl, PHP, Python, and Tcl. MySQL is used in a wide range of applications, including Embedded Applications, Telecom, Service Providers, Retail, data warehousing, e-commerce, Web databases, logging applications and distributed applications.

Many of the world's largest and fastest-growing organizations use MySQL to save time and money powering their high-volume Web sites, critical business systems, and packaged software - including industry leaders such as Yahoo!, Alcatel-Lucent, Google, Nokia, YouTube, Wikipedia, and Booking.com.

The flagship MySQL offering is MySQL Enterprise, a comprehensive set of production-tested software, proactive monitoring tools, and premium support services available in an affordable annual subscription.

MySQL is a key part of LAMP (Linux, Apache, MySQL, PHP / Perl / Python), the fast-growing open source enterprise software stack. More and more companies are using LAMP as an alternative to expensive proprietary software stacks because of its lower cost and freedom from platform lock-in.

The MySQL database is owned, developed and supported by Sun Microsystems, one of the world's largest contributors to open source software. MySQL was originally founded and developed in Sweden by two Swedes and a Finn: David Axmark, Allan Larsson and Michael "Monty" Widenius, who had worked together since the 1980's. More historical information on MySQL is available on Wikipedia

History of MySQL

When the authors of MySQL wanted to use mSQL to connect to some tables using its very fast ISAM routines. However,after some testing they conclude mSQL turned out to be too slow, not fast enough or flexible enough for there needs. They started working on their own solution. This resulted in a new SQL interface to database but with almost the same API interface as mSQL. This API was designed to allow third-party code that was written for use with mSQL to be ported easily for use with MySQL.
They named there new Software as MySQL on co-founder Monty Widenius's daughter name, My.

The name of the MySQL Dolphin (logo) is "Sakila," which was chosen by the founders of MySQL AB from a huge list of names suggested by users in our "Name the Dolphin" contest.
The winning name was submitted by Ambrose Twebaze, an Open Source software developer from Swaziland, Africa. According to Ambrose, the feminine name Sakila has its roots in SiSwati, the local language of Swaziland. Sakila is also the name of a town in Arusha, Tanzania, near Ambrose's country of origin, Uganda.

As per Wikipedia

  • MySQL was first released internally on 23 May 1995
  • Windows version released on January 8, 1998 for Windows 95 and NT
  • Version 3.23: beta from June 2000, production release January 2001
  • Version 4.0: beta from August 2002, production release March 2003 (unions)
  • Version 4.1: beta from June 2004, production release October 2004 (R-trees and B-trees, subqueries, prepared statements)
  • Version 5.0: beta from March 2005, production release October 2005 (cursors, stored procedures, triggers, views, XA transactions)
  • Version 5.1: currently pre-production (since November 2005) (event scheduler, partitioning, plugin API, row-based replication, server log tables)
  • Sun Microsystems acquires MySQL AB on 26 February 2008

Main Features of MySQL

here we will see the important characteristics and feature of the MySQL Database Software. MySQL is written in C and C++ and Tested with a broad range of different compilers to Works on many different platforms.

  • The MySQL Server design is multi-layered with independent modules.
  • Fully multi-threaded using kernel threads. It can easily use multiple CPUs if they are available.
  • Provides transactional and non-transactional storage engines
  • Uses very fast B-tree disk tables (MyISAM) with index compression.
  • Relatively easy to add other storage engines. This is useful if you want to provide an SQL interface for an in-house database.
  • A very fast thread-based memory allocation system.
  • Very fast joins using an optimized one-sweep multi-join.
  • In-memory hash tables, which are used as temporary tables.
  • SQL functions are implemented using a highly optimized class library. Usually there is no memory allocation at all after query initialization.
  • Support verity of datatypes including signed/unsigned integers 1, 2, 3, 4, and 8 bytes long, FLOAT, DOUBLE, CHAR, VARCHAR, TEXT, BLOB, DATE, TIME, DATETIME, TIMESTAMP, YEAR, SET, ENUM, and OpenGIS spatial types.
  • Full support for SQL GROUP BY, ORDER BY clauses and JOIN
  • Handles large databases.
  • APIs for C, C++, Eiffel, Java, Perl, PHP, Python, Ruby, and Tcl are available.
  • MySQL Connector/NET enables developers to easily create .NET applications that require secure, high-performance data connectivity with MySQL
  • Full support for several different character sets, including latin1 (cp1252), german, big5, ujis, and more.

The most requested features and the versions in which they were implemented or are scheduled for implementation are summarized in the following table:

Feature

MySQL Series

Unions 4.0
Subqueries 4.1
R-trees 4.1 (for the MyISAM storage engine)
Stored procedures 5.0
Views 5.0
Cursors 5.0
XA transactions 5.0
Triggers 5.0 and 5.1
Event scheduler 5.1
Partitioning 5.1
Pluggable storage engine API 5.1
Plugin API 5.1
Row-based replication 5.1
Server log tables 5.1
Foreign keys 6.x (implemented in 3.23 for InnoDB)

Uses

MySQL is popular for web applications and acts as the database component of the LAMP, BAMP, MAMP, and WAMP platforms (Linux/BSD/Mac/Windows-Apache-MySQL-PHP/Perl/Python), and for open-source bug tracking tools like Bugzilla. Its popularity for use with web applications is closely tied to the popularity of PHP and Ruby on Rails, which are often combined with MySQL. PHP and MySQL are essential components for running popular content management systems such as Drupal, e107, Joomla!, WordPress and some BitTorrent trackers. Wikipedia runs on MediaWiki software, which is written in PHP and uses a MySQL database.

Platforms and interfaces

MySQL is written in C and C++. The SQL parser uses yacc and a home-brewed lexer.[6]

MySQL works on many different system platforms, including AIX, BSDi, FreeBSD, HP-UX, i5/OS, Linux, Mac OS X, NetBSD, Novell NetWare, OpenBSD, eComStation , OS/2 Warp, QNX, IRIX, Solaris, SunOS, SCO OpenServer, SCO UnixWare, Tru64, Windows 95, Windows 98, Windows ME, Windows NT, Windows 2000, Windows XP, and Windows Vista. A port of MySQL to OpenVMS is also available.[7]

Libraries for accessing MySQL databases are available in all major programming languages with language-specific APIs. 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). Also downloadable from the MySQL site are GUI administration tools: MySQL Administrator and MySQL Query Browser. Both of the GUI tools are now included in one package called tools/5.0.html MySQL GUI Tools.

In addition to the above-mentioned tools developed by MySQL AB, there are several other commercial and non-commercial tools available. Examples include phpMyAdmin, a free Web-based administration interface implemented in PHP, or SQLyog Community Edition, a free desktop based GUI tool.