Developer(s) | Oracle Corporation |
Initial release | May 23, 1995 (1995-05-23) |
Stable release | 5.1.45 (March 17, 2010; 6 days ago (2010-03-17)) [+/−] |
Preview release | 5.5.2 (February 14, 2010; 37 days ago (2010-02-14)) [+/−] |
Written in | C, C++ |
Operating system | Cross-platform |
Available in | English |
Type | RDBMS |
License | GNU General Public License (version 2, with linking exception) or proprietary EULA |
Website | www.mysql.com dev.mysql.com |
MySQL is a relational database management system (RDBMS) that runs as a server providing multi-user access to a number of databases. MySQL is officially pronounced /maɪˌɛskjuːˈɛl/ (“My S-Q-L”),but is often pronounced /maɪsiːˈkwɛl/ (“Micey Quell”) or /maɪˈsiːkwəl/ (“My Sequel”).[citation needed] It is named for original developer Michael Widenius‘s daughter My.
The MySQL development 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 owned by Sun Microsystems, a subsidiary of Oracle Corporation.
Members of the MySQL community have created several forks such as Drizzle and MariaDB. Both forks were in progress long before the Oracle acquisition (Drizzle was announced 8 months before the Sun acquisition).
Free-software projects that require a full-featured database management system often use MySQL. Such projects include (for example) WordPress, phpBB, Drupal and other software built on the LAMP software stack. MySQL is also used in many high-profile, large-scale World Wide Web products including Wikipedia, Google and Facebook.
Uses
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.
Platforms and interfaces
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++.
Management and Graphical Frontends
MySQL Workbench in Windows, displaying the Home Screen which streamlines use of its full capabilities
MySQL is primarily an RDBMS and therefore ships with no GUI tools to administer MySQL databases or manage data contained within. Users may use the included command-line tools, or download MySQL Frontends from various parties that have developed desktop software and web applications to manage MySQL databases, build database structure, and work with data records.
Official
The official MySQL Workbench is a free integrated environment developed by MySQL AB, that enables users to graphically administer MySQL databases and visually design database structure. MySQL Workbench replaces the previous package of software, MySQL GUI Tools. Similar to other third-party packages but still considered the authoritative MySQL frontend, MySQL Workbench lets users manage the following:
- Database design & modeling
- SQL development — replacing MySQL Query Browser
- Database administration — replacing MySQL Administrator
MySQL Workbench is available in two editions, the regular free and open source Community Edition which may be downloaded from the MySQL website, and the proprietary Standard Edition which extends and improves the feature set of the Community Edition.
Third party
Several other third-party proprietary and free graphical administration applications (or “Frontends”) are available that integrate with MySQL and enable users to work with database structure and data visually. Some well-known frontends are:
- phpMyAdmin – a free Web-based frontend widely installed by Web hosts worldwide, since it is developed in PHP and only requires the LAMP stack.
- HeidiSQL – a full featured free frontend that runs on Windows, and can connect to local or remote MySQL servers to manage databases, tables, column structure, and individual data records. Also supports specialised GUI features for date/time fields and enumerated multiple-value fields.
- Adminer – a free MySQL frontend written in one PHP script, capable of managing multiple databases, with many CSS skins available.
- Navicat – a series of proprietary graphical database management applications, developed for Windows, Macintosh and Linux.
- Other available proprietary MySQL frontends include Aqua Data Studio, dbForge Studio for MySQL, Epictetus, Oracle SQL Developer, SchemaBank, SQLyog, SQLPro SQL Client, Toad and Toad Data Modeler.
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.
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.
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.
Features
As of April 2009[update], 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 (Index (database)) 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.
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, IBM DB2[22])
- 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.
Product History
Milestones in MySQL development include:
- Original development of MySQL by Michael Widenius and David Axmark beginning in 1994
- First internal release on 23 May 1995
- Windows version was released on 8 January 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.01: beta from August 2003, Jyoti adopts MySQL for database tracking
- 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)
The developer of the Federated Storage Engine states that “The Federated Storage Engine is a proof-of-concept storage engine”, but the main distributions of MySQL version 5.0 included it and turned it on by default. Documentation of some of the short-comings appears in “MySQL Federated Tables: The Missing Manual”
.
- Sun Microsystems acquired MySQL AB on 26 February 2008.
- Version 5.1: production release 27 November 2008 (event scheduler, partitioning, plugin API, row-based replication, server log tables)
Version 5.1 contained 20 known crashing and wrong result bugs in addition to the 35 present in version 5.0.
MySQL 5.1 and 6.0 showed poor performance when used for data warehousing — partly due to its inability to utilize multiple CPU cores for processing a single query.[26]
- Oracle acquired Sun Microsystems on January 27, 2010.Oracle and Sun
Future releases
The MySQL 6 roadmap outlines support for:
- Referential integrity and Foreign key support for all storage engines is targeted for release in MySQL 6.1 (although it has been present since version 3.23.44 for InnoDB).
- Support for supplementary Unicode characters, beyond the 65,536 characters of the Basic Multilingual Plane (BMP); announced for MySQL 6.0.
- A new storage engine called Falcon. A preview of Falcon is available on MySQL’s website.
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, Pythian
offers full database administration, architecture, optimization and training services. Percona and 42sql
offer services related to optimization and Monty Program Ab offers non-recurring engineering such as patches to MySQL. OpenQuery provides MySQL training.
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.
Corporate backing history
In October 2005, Oracle Corporation acquired Innobase OY, the Finnish company that developed the third-party 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. This had little effect, as Berkeley DB was not widely used, and was deprecated (due to lack of use) in MySQL 5.1.12, a pre-GA release of MySQL 5.1 released in October 2006.
In January 2008, Sun Microsystems bought MySQL for USD $1 billion.
In April 2009, Oracle Corporation entered into an agreement to purchase Sun Microsystems, then 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. as it had done for the previous 4 years. The Oracle acquisition was approved by the European Commission on January 21, 2010.
Amazing post! I initially found your blog a week or so ago, and I subscribed to your RSS feed the very same day. I have several cool ideas for some upcoming posts you could write. I’ll send you an email shortly. Keep up the great work.
Thanks.
Would have been more exciting to hear a teaser clip of the engine than this picture.
Hello, I understand this is perhaps somewhat unexpected to hear, but this post inspires me to get through my day, when my boss is getting on my nerves left right and centre! Some of my buddies told me about it but I didn’t find it for some time, so a few days ago I was very excited to finally find it! Myself, I don’t do much blogging due to time constraints however I do love to read other people’s work. I just need to comment to show my admiration for your blog and I also wanted to say that many bloggers do not get any credit for their excellent work, credit that is, surely well deserved. Given the topic you may not think this is real and perhaps doubt that any person could like it so much, but I genuinely want you to carry on with this. It’s fantastic!
Thanks. If need any help knock me.
Thank you Lisa Sininger, Keep in touch with us.
hi !!!
i like your blog.!!!!!
sooo———– keep writing !!!!!!
thanks.
Advantageously, the article is actually the best on this precious topic. I harmonise with your conclusions and will thirstily look forward to your upcoming updates. Saying thanks will not just be sufficient, for the fantasti c clarity in your writing. I will at once grab your rss feed to stay privy of any updates. Pleasant work and much success in your business dealings Webmaster Forum
hahah alright so this is precisely how asinine I am, halfway through reading through your post I dropped my sensitive mouse and shut the site by mistake and I couldn’t locate your web page once again until 6 days later to finish reading from the spot i had left off since I didn’t remember how I linked to your site in the first place haha in any case it was worth the delay..kudos 🙂
howdy i posted a remark quite some time back pertaining to how to speed up my twilight eclipse website’s load time seeing that we made use of the very same theme at that time and someone placed a remark responding to it on my web site a week ago – if that was you I simply wanted to say hi and thanks, and if it was not you then i’m sorry to bother you, but cheers anyhow! 🙂
I’m pretty new to BlogEngine and noticed that a number of your other readers have different avatars. Any idea as to how I can change mine? Is it possible to put a custom one?
it is a very interesting and exciting to watch. This video is enjoyable and please watch it.
You really make it seem so easy with your presentation but I find this topic to be really something which I think I would never understand. It seems too complicated and very broad for me. I am looking forward for your next post, I will try to get the hang of it!
Thanx for the effort, keep up the good work Great work, I am going to start a small Blog Engine course work using your site I hope you enjoy blogging with the popular BlogEngine.net.Thethoughts you express are really awesome. Hope you will right some more posts.
There is lots of space and bandwidth talks going on these days with hosting companies trying to surpass each other, customer running after space and bandwidth, seems more of a fashion than any one really knowing what he/she needs in this area, May be this needs to be discussed:-
If you liked this post you will doubtless like this site too: http://www.winfreegiftcardsonline.com . Its an awesome website for earning gift cards online .
Though I would’ve loved it much more if you added a relevant video or at least pictures to back up the explanation, I still thought that your write-up quite helpful. It’s usually hard to make a complicated matter seem very easy. I enjoy your weblog and will sign up to your feed so I will not miss anything. Fantastic content
I like your blog a lot. Well done!!! I ll come back here soon;) good luck and everything the best
Aw, this was a really quality post. In theory I’d like to write like this too – taking time and real effort to make a good article… but what can I say… I procrastinate alot and never seem to get something done.
I completely agree with the above comment, the internet is with a doubt growing into the most important medium of communication across the globe and its due to sites like this that ideas are spreading so quickly.
This article is actually the freshest on this boring topic. I agree with your conclusions and will look forwardto your future updates. Saying thankswill not just be enough,I will instantly grab your rss feed to stay tuned to any updates.
i know this is not exactly on topic, but i have a blog using the blogengine platform as well and i’m having issues with my comments displaying. is there a setting i am forgetting? maybe you could help me out? thank you.
I like your blog a lot. Well done!!! I ll come back here soon;) good luck and everything the best
Thank you for another fantastic blog. Where else could I get this kind of information written in such an incite full way? I have a project that I am just now working on, and I have been looking for such information… Regards…
Good topic for making an effective dissertation. . . . . .
Pretty good post. I just stumbled upon your blog and wanted to say that I have really enjoyed reading your blog posts. Any way I’ll be subscribing to your feed and I hope you post again soon. . . .
Wow, very interesting article. It’s funny how history can be twisted in so many different ways. These photos certainly give us clues, but I guess we’ll never know the true story. . . .
If every editor wrote like you believe me the world would be a better place! This was an excellent read expecting more!
Fantastic work buddy, keep writing.
Substantially, the post is actually the sweetest topic on curing acne naturally. I concur with your conclusions and will thirstily look forward to your future updates. Just saying thanks will not just be sufficient, for the tremendous lucidity in your writing. I will right away grab your rss feed to stay abreast of any updates.
Hey, nice post, really well written. You should write more about this.
Thanks I really needed this.
i’m continually scurrying on the web just about all of the evening so I have a tendency to browse quite a lot, which unfortunately is not commonly a beneficial thing as a great number of the online resources I see are composed of pointless trash copied from different websites a thousand times, on the other hand I have to give you credit this website is actually decent and even possesses a bit of original content, therefore kudos for smashing the pattern of just simply copying other peoples’ blogs and forums, take care
Keep the good information comming, we need more authors like you!
Hi awsome blog im from leeds but im moving to manchester i found this on the aol search engine,keep the good work up i will add you to my favoroties.