What is MySQL?
MySQL is an open source, relational database management system (RDBMS) based on structured query language (SQL). MySQL is available on all major operating systems, including Windows, Linux and Solaris. It is free to use for individuals and non-production environments under the GNU General Public License; however, if used commercially, a commercial licence is required.
MySQL, like other relational databases, stores data in tables, columns and rows. Each entry is defined by a unique identifier. Its raison d'être has always been the performance and reliability of the database. MySQL was designed and optimized for the web development arena; it is arguably the most common database used in web server deployments. MySQL works very well with Apache and PHP and is often the go to database for LAMP stack deployments. MySQL powers 9 out of 10 websites on the internet today, and is the database chosen by Facebook, Twitter and Wikipedia.i
MySQL was created by a Swedish company called MySQL AB in 1995. During its early years, the development focus was speed and productivity, rather than feature sets. New features, however, were subsequently added with every major release, but MySQL AB always concentrated on speed, reliability and above all, offering an easy-to-use database focused on web applications.ii
During the late 1990’s, due to its significant performance advantages, MySQL became the database of choice for many companies. The Database market expanded and grew rapidly since the introduction of MySQL. It played a significant part in the history of the internet, enabling inexperienced users access to a free database, resulting in an explosion of websites for blogs, forums and online articles.iii
MySQL was successful because it is easy to use, simple to install, and uses a query language that is simple to understand. For Example, the SHOW DATABASES command will list the available database in MySQL. It was designed for people who are not experts in Database management, empowering inexperienced users, whilst at the same time offering enough complexity to cater for advanced DBA’s.iv
From 2001 onwards, MySQL AB began to add features that appealed to the enterprise markets, such as BDB and InnoDB support (a storage engine used in eCommerce), sub queries, prepared statements, stored procedure etc. With each revision of MySQL, more enterprise grade features were added. Again, the growth of MySQL allowed users to pick up these feature sets with relative ease.
Sun Microsystems purchased MySQL AB in 2008; later, in 2009, Oracle acquired the company after buying Sun Microsystems. Recent versions of MySQL are now very rich in product features whilst still maintaining strong performance ability. With Oracle’s drive to the cloud, they have recently started positioning MySQL as the go-to cloud database platform alongside existing, more traditional Oracle database platforms.
Since 2007, MySQL started to introduce differing versions of its core MySQL product. These editions focused around the community and enterprise versions of MySQL. This change in strategy presented users with a choice, as both applications use the same source code, but were offered with differing support levels available to the end user.v
The community edition is supported by the MySQL open source global community via a documentation hub, online blogs, IRC channels and forums. The enterprise editions are supported by dedicated technical support teams, which offer hotfixes and service pack support, and more recently include enterprise exclusive features such as Enterprise Backup, Enterprise Monitor, Enterprise Security and Enterprise Audit modules.vi
Since the purchase of MySQL by Oracle, many of the original development teams have left and set up what are known as fork development companies. These are essentially open source RDBMS software houses which are creating new RDBMS software using the original GNU source code for MySQL. Popular examples include MariaDB and Percona.
MySQL Management Tools
There are several tools available to manage and maintain MySQL. In typical Linux installations, DB management is done via the command line using the MySQL client. The MySQL client can be used to create databases, set up permissions and access rights. Additionally, there are several popular GUI tools including SQLyog, phpMyAdmin, MySQL Query Browsers, Navicat, MySQL Administrator and MySQL Workbench.
Each tool does similar tasks, including creating new tables, importing/exporting data, managing users and permissions, backups and restores, and creating triggers, views and stored procedures of the data. phpMyAdmin is widely used on Linux, and SQLyog and Workbench are popular on Windows. These tools are very similar in functionality to the Microsoft SQL Server studio. Some of the applications are free, while others offer free trials but require a license for full functionality. All tools are relatively simple to learn at a basic level and can offer enterprise grade features.
iOracle.com. (2018). Top 10 Reasons to Choose MySQL for Web - based Applications A MySQL Strategy Whitepaper. [online] Available at: http://www.oracle.com/us/products/mysql/mysql-wp-top10-webbased-apps-461054.pdf [Accessed 15 May 2018].
iiTop 10 Reasons to Choose MySQL for Web - based Applications A MySQL Strategy Whitepaper. [online] Available at: http://www.oracle.com/us/products/mysql/mysql-wp-top10-webbased-apps-461054.pdf [Accessed 15 May 2018].
iiiCabral, S. and Murphy, K. (2009). MySQL administrator's bible. Indianapolis, Ind.: Wiley Publishing.
ivPachev, A. (2003). MySQL enterprise solutions. Indianapolis, Ind.: Wiley.
vCabral, S. and Murphy, K. (2009). MySQL administrator's bible. Indianapolis, Ind.: Wiley Publishing.
viSlideshare.net. (2018). MySQL Features & Implementation. [online] Available at: https://www.slideshare.net/osscube/mysql-features-implementation [Accessed 14 May 2018].