What is MySQL?

MySQL is a relational database management system developed under a dual license: General Public License / Commercial License by Oracle Corporation and is considered the most popular open source database in the world,  and a of the most popular in general with Oracle and Microsoft SQL Server , especially for web development environments.

MySQL was initially developed by MySQL AB (company founded by David Axmark , Allan Larsson and Michael Widenius ). MySQL AB was acquired by Sun Microsystems in 2008, and this in turn was purchased by Oracle Corporation in 2010, which was already owner since 2005 of Innobase Oy , a Finnish company that develops the InnoDB engine for MySQL.




Unlike projects like Apache , where the software is developed by a public community and the copyright of the code is held by the individual author, MySQL is sponsored by a private company , which owns the copyright of most of the code. This is what makes the double licensing scheme mentioned above possible. The database is distributed in several versions, a Community , distributed under the GNU General Public License, version 2, and several Enterprise versions, for those companies that want to incorporate it into proprietary products. The Enterprise versions include additional products or services such as monitoring tools and official technical assistance . In 2009 a fork called MariaDB was created by some developers (including some original MySQL developers) dissatisfied with the development model and the fact that the same company controls both the MySQL and Oracle Database products at the same time.

 

Do we use MySQL in our servers? is it really that important?

Yes!, MySQL is widely used in web applications , such as Joomla , WordPress , Drupal or phpBB , on platforms (Linux / Windows-Apache-MySQL-PHP / Perl / Python), and by bug tracking tools such as Bugzilla. Its popularity as a web application is closely linked to PHP , which often appears in combination with MySQL.

MySQL is a very fast database when reading the non-transactional MyISAM engine, but it can cause integrity problems in highly concurrent environments in the modification. In web applications there is low concurrency in the modification of data and instead the environment is intensive in reading data, which makes MySQL ideal for this type of applications. Whatever the environment in which you are going to use MySQL, it is important to monitor performance in advance to detect and correct both SQL and programming errors.


 

Features

Initially, MySQL lacked elements considered essential in relational databases, such as referential integrity and transactions . Despite this, it attracted developers of web pages with dynamic content, precisely because of its simplicity.

Little by little, the elements that MySQL lacked are being incorporated both by internal developments and by free software developers. Among the features available in the latest versions can be highlighted:

  • Wide subset of the SQL language. Some extensions are included equally.
  • Availability in a large number of platforms and systems.
  • Possibility of selection of storage mechanisms that offer different speeds of operation, physical support, capacity, geographical distribution, transactions …
    Transactions and foreign keys .
  • Secure connectivity
  • Replication
  • Search and indexing of text fields.