MySQL Database Management System
MySQL Database Management System
MySQL is a database management (DBMS). Depending on the type of application, its license is free or proprietary. It is part of the management software database used the world over, both by the public (mainly through using web applications) and by professionals in competition with Oracle and Microsoft SQL Server.
MySQL AB was bought January 16, 2008 by Sun Microsystems for one billion U.S. dollars. In 2009, Sun Microsystems has been acquired by Oracle Corporation, putting in the hands of the same company the two competing products such as Oracle Database and MySQL. The takeover was cleared by the European Union January 21, 2010. Since May 2009, its founder Michael Widenius created MariaDB to continue its development as an open source project.
MySQL Features
MySQL is a relational database SQL developed to be high performance in reading, which means it is more oriented data service already in place than to that of frequent updates and highly secure. It is multi-threaded and multi-user.
This is a free software license based on dual use made of it: in a free product or a product owner. In the latter case, the license fee, otherwise it is the GNU General Public License] (GPL) applies. This type of dual licensing is used by other products such as software development framework Qt (for versions prior to 4.5).
Operating Systems
MySQL runs on many different operating systems, including AIX, IBM i-5, BSDI, FreeBSD, HP-UX, Linux, Mac OS X, NetWare, NetBSD, OpenBSD, OS / 2 Warp, SGI Irix, Solaris, SunOS , SCO OpenServer, SCO UnixWare, Tru64 Unix, Windows (2000, XP, Vista and 7).
The databases are accessible using the programming languages C, C + +, VB, VB. NET, C #, Delphi / Kylix, Eiffel, Java, Perl, PHP, Python, Ruby and Tcl; a specific API is available for each of them. An ODBC interface called MyODBC is also available. In Java, MySQL can be used seamlessly with the standard JDO.
Since the acquisition of MySQL by Sun Microsystems, MySQL has become the unofficial database for use in conjunction with the programming language Java, which gives additional recognition to the DBMS for enterprises that use Java.
MySQL Use
MySQL is part of the quartet LAMP: Linux, Apache, MySQL, PHP. It is also for its variants WAMP (Windows) and MAMP (Mac).
The PHP / MySQL is widely used by Web sites and proposed by the majority of web hosts. More than half of the websites run on Apache [4], which is most often used in conjunction with PHP and MySQL.
Wikipedia uses MySQL, and many companies, including Google, Yahoo, YouTube, Adobe, Airbus, Alstom, Credit Agricole, AFP, Reuters, BBC News, Ernst & Young, Alcatel-Lucent.
Since version 5, it is possible to use PL / SQL originally developed by Oracle Corporation to use stored procedures and functions and triggers. In addition, MySQL supports standard SQL2 (using JOIN), which makes him a DBMS course, since compliance with this standard will ensure compatibility with standard queries.
His lack of default support for transactions and automatic integrity of the tables (except by using some engines like InnoDB) make adoption more complicated example in banking companies, however, its performance is generally better than most other systems competitors, and its price substantially lower implementation, it achieves some success with companies that need an inexpensive database or inefficient.
The interest in using the tools in place of www client server 2 or 3 others, has prompted some banks such as Credit Mutuel, Credit Agricole, the LCL, the Development Bank of Canada to offer their catalog MySQL internal computer products.
MySQL – Legal
MySQL is the work of a Swedish company MySQL AB, founded by David Axmark, Allan Larsson and Michael “Monty” Widenius.
The name comes from their habit MySQL to prefix with “My” a large part of their files, libraries and tools. Monty Widenius’s daughter was nicknamed “My”.
The name of the logo of MySQL (the dolphin) Sakila, was chosen by the creators of MySQL on a competitive basis. It has been proposed by Ambrose Twebaze, developer of Swaziland. According to Ambrose, the name has its origins Sakila Siswati, the local language of Swaziland.
MySQL – Historical
The first version of MySQL appeared May 23, 1995.
It was originally created for personal use from mSQL based on the language of low-level ISAM they were too slow and too rigid. They have created a new SQL interface in the same API interface as mSQL.
MySQL is passed under the GPL from version 3.23.19 (June 2000)
- Version 4.0: first version in October 2001, stable since March 2003
- Version 4.1: first version in April 2003, stable since October 2004
- Version 5.0: first version in December 2003, stable since October 2005
- Version 5.1: first version in November 2005, Release Candidate distributed since September 2007
- Version 5.2: Distributed in preview (addition of the new Falcon storage engine) in February 2007, this line was subsequently renamed 6.0
- Version 5.4:
- Version 6.0: first alpha version in April 2007
In 2003, MySQL AB and SAP AG concluded an agreement. The result called MaxDB. It comes from the integration of SAP system (SAP DB) in MySQL.
On April 20, 2009, Oracle Corporation announces repurchase Sun Microsystems $ 7.4 billion [6], creating the fear of MySQL disappear – or at least no longer be developed – in favor of Oracle DBMS Oracle Corporation . MySQL is far from having all the features of Oracle, and could therefore be seen rather by society as a free product call trivializing the use of SQL and thus preparing its future sales.
MySQL Engine database included
A unique feature of MySQL is able to handle multiple engines in a single database. Each table may use a different engine in a database. This is to optimize the use of each table.
Here are the engines of historical MySQL
- MyISAM default engine for MySQL. It is the easiest to use and implement. It uses several files that grow progressively as the base grows. It does not support transactions or foreign keys.
- InnoDB: engine created and maintained by Innobase (acquired by Oracle October 7, 2005). It manages transactions and foreign keys (and thus integrity management table). In return, the bases that use occupy more space on the disk.
- BerkeleyDB (BDB) engine supplied by Sleepycat Software, which manages transactions.
- MERGE: engine is to merge multiple tables must be identical.
- ARCHIVE: engine suitable for archiving data. The lines are compressed as and when they are introduced. The search queries are then substantially slower.
- MEMORY (HEAP): engine where the tables are stored only in memory. The structure of the database is stored on the hard disk but the data are stored in RAM, if the server machine is restarted, the data will be lost. However, given that there is no disk access, a change request (UPDATE, INSERT …) will run significantly faster.
- CSV: engine using text files (CSV) as storage.
- BLACKHOLE *: receivers engine data, transferring, but do not store. It can be used as a repeater or as a data filter.
- ISAM: original engine of MySQL, now obsolete and replaced by MyISAM. It remained for compatibility reasons.
- NDB (MaxDB version only): engine network database manager clusters of servers.
- FEDERATED: engine to access tables in a remote database rather than in local files.
- EXAMPLE: fictitious and inoperable engine, made available for developers.
- Falcon: The new engine should make its appearance with MySQL 6. Since the acquisition of Innobase Oracle, MySQL AB has been forced to create a new transactional engine for no longer depend on its competitor. It should gradually replace InnoDB.
- MARIA evolution ACID MyISAM
Some storage engines OPEN Source:
- Infobright: engine VLDB-oriented business intelligence applications
- Sphinx full text search engine oriented
- PBXT: transactional engine close to the performance of InnoDB
- Memcached: motor driven hash table in memory
- M4q: engine oriented management queue
Some commercial storage engines:
- IBM DB2 Engine transactional copyright
- Copyright IBM solidDB Transaction Engine
- NitroEDB Engine VLDB copyright BrightHouse
- Engine Tokutek VLDB
The ease of using multiple storage engines in a single database with MySQL allows enormous flexibility in optimizing the database: MyISAM be used to store data bit sensitive and require rapid access to data (e.g., a list users), InnoBD for advanced and more sensitive data (e.g., for a list of bank transactions), MEMORY to data may be lost when you restart the machine and change frequently (for example a list of users line) for a historical ARCHIVE (or log) because it requires little reading, etc.
Clusters of servers
Two methods exist to spread the load on a set of machines running MySQL Server. These methods allow for redundancy (if one machine fails, others can take over), to improve the speed of searches (SELECT) or to establish a dedicated machine for data backup
Replication
MySQL can, since version 3.23.15 using a system-way replication is relatively simple to implement: a master server contains the source database and will receive all the changes, and a slave server contains an identical structure base and connects to the master server to fetch the new changes and update its databases. A master can have only one slave, yet may become a slave to his master to turn another slave server, thus creating a chain of replication.
All updates (UPDATE, DELETE, INSERT, etc.) are to be sent to the master server and will be automatically passed on to his slaves, but the search queries (SELECT), often more numerous and more intensive resources will be made on one or more slaves . Since the requests for amendments must be redirected to the master server, the application design should fit the architecture: the programmer will open two connections in a program, a master server on which it will execute all changes and on the slave server on which it will perform all his research.
This system does, however, a limited redundancy:
- If the master fails, the slave can take over, but need a programmer to update the program to load the server that will receive the changes, or to schedule a list of redundancy to automatically change master .
- If the slave server stops working, all requests should be sent to the master server.
- If the architecture has more than two nodes, where an intermediate server in the chain (which is both slave and master) fails, the slave server must be reconfigured to replicate on the master server crashed.
In most cases, will require action by the administrator to restore order, and the application will stop working during this time. The advantage of this solution appears in the management of backups, because the application using only the master server, it will not be stopped if the slave server backups fails, but a backup of the database will be available in If the master server fails.
If you want to add a node, it should be placed at the end of the chain as a slave and modify the application to manage this new node.
From the perspective of MySQL, each node is managed independently, so the programmer has to manage the allocation of the burden.
MySQL Cluster
MySQL can, since version 4.1 and using the NDB storage engine to manage a cluster of servers complete. Its structure is based on data replication, that is to say that each node will be part of a group node that possesses the whole base.
A protocol used in each node is responsible to send each transaction involved the various nodes in the cluster requires a minimum of two machines to establish a MySQL clustering solution and a machine (which may itself incorporate a server MySQL) that will act as a load balancer redirecting requests to available nodes and less busy.
The search queries (SELECT) will be faster, but when a change of data (a query UPDATE, DELETE or INSERT example), it will be done on all nodes, which will block the whole cluster during this operation.
Compared to a system of replication, redundancy is improved: if a node fails, its load is automatically taken over by other nodes.
Adding a new node can be done without needing to repartition the base, simply the recognition by the cluster and restarting a node can be done without having to restart the cluster.
From the perspective of MySQL, each node is part of a package that could be recognized as a single machine. For the programmer, it must plan its application to communicate with the distributor.
MySQL Database Management System – Easy Solutions For All!
This solution is perfect when the availability and data security is a critical issue and that we seek a partitioning technical support. Coupled with real-time capabilities and an API for asynchronous programming NDB Cluster is primarily the requirements of the telecommunications market.
Study: From Wikipedia, the free encyclopedia. The text is available under the Creative Commons.

