# Azure services for open-source databases

In addition to Azure SQL services, Azure data services are available for other popular relational database systems, including MySQL, MariaDB, and PostgreSQL. The primary reason for these services is to enable organizations that use them in on-premises apps to move to Azure quickly, without making significant changes to their applications.

### What are MySQL, MariaDB, and PostgreSQL? <a href="#what-are-mysql-mariadb-and-postgresql" id="what-are-mysql-mariadb-and-postgresql"></a>

MySQL, MariaDB, and PostgreSQL are relational database management systems that are tailored for different specializations.

MySQL started life as a simple-to-use open-source database management system. It's the leading open-source relational database for _Linux, Apache, MySQL, and PHP_ (LAMP) stack apps. It's available in several editions; Community, Standard, and Enterprise. The Community edition is available free of charge and has historically been popular as a database management system for web applications, running under Linux. Versions are also available for Windows. Standard edition offers higher performance and uses a different technology for storing data. Enterprise edition provides a comprehensive set of tools and features, including enhanced security, availability, and scalability. The Standard and Enterprise editions are the versions most frequently used by commercial organizations, although these versions of the software aren't free.

MariaDB is a newer database management system, created by the original developers of MySQL. The database engine has since been rewritten and optimized to improve performance. MariaDB offers compatibility with Oracle Database (another popular commercial database management system). One notable feature of MariaDB is its built-in support for temporal data. A table can hold several versions of data, enabling an application to query the data as it appeared at some point in the past.

PostgreSQL is a hybrid relational-object database. You can store data in relational tables, but a PostgreSQL database also enables you to store custom data types, with their own non-relational properties. The database management system is extensible; you can add code modules to the database, which can be run by queries. Another key feature is the ability to store and manipulate geometric data, such as lines, circles, and polygons.

PostgreSQL has its own query language called _pgsql_. This language is a variant of the standard relational query language, SQL, with features that enable you to write stored procedures that run inside the database.

### Azure Database for MySQL <a href="#azure-database-for-mysql" id="azure-database-for-mysql"></a>

![Azure Database for MySQL logo](https://learn.microsoft.com/en-us/training/wwl-data-ai/explore-provision-deploy-relational-database-offerings-azure/media/mysql-logo.png)Azure Database for MySQL is a PaaS implementation of MySQL in the Azure cloud, based on the MySQL Community Edition.

The Azure Database for MySQL service includes high availability at no additional cost, and scalability as required. You only pay for what you use. Automatic backups are provided, with point-in-time restore.

The server provides connection security to enforce firewall rules and, optionally, require SSL connections. Many server parameters enable you to configure server settings such as lock modes, maximum number of connections, and timeouts.

Azure Database for MySQL provides a global database system that scales up to large databases without the need to manage hardware, network components, virtual servers, software patches, and other underlying components.

Certain operations aren't available with Azure Database for MySQL. These functions are primarily concerned with security and administration. Azure manages these aspects of the database server itself.

#### Benefits of Azure Database for MySQL <a href="#benefits-of-azure-database-for-mysql" id="benefits-of-azure-database-for-mysql"></a>

You get the following features with Azure Database for MySQL:

* High availability features built-in.
* Predictable performance.
* Easy scaling that responds quickly to demand.
* Secure data, both at rest and in motion.
* Automatic backups and point-in-time restore for the last 35 days.
* Enterprise-level security and compliance with legislation.

The system uses pay-as-you-go pricing so you only pay for what you use.

Azure Database for MySQL servers provides monitoring functionality to add alerts, and to view metrics and logs.

### Azure Database for MariaDB <a href="#azure-database-for-mariadb" id="azure-database-for-mariadb"></a>

![Azure Database for MariaDB logo](https://learn.microsoft.com/en-us/training/wwl-data-ai/explore-provision-deploy-relational-database-offerings-azure/media/mariadb-logo.png)Azure Database for MariaDB is an implementation of the MariaDB database management system adapted to run in Azure. It's based on the MariaDB Community Edition.

The database is fully managed and controlled by Azure. Once you've provisioned the service and transferred your data, the system requires almost no additional administration.

#### Benefits of Azure Database for MariaDB <a href="#benefits-of-azure-database-for-mariadb" id="benefits-of-azure-database-for-mariadb"></a>

Azure Database for MariaDB delivers:

* Built-in high availability with no additional cost.
* Predictable performance, using inclusive pay-as-you-go pricing.
* Scaling as needed within seconds.
* Secured protection of sensitive data at rest and in motion.
* Automatic backups and point-in-time restores for up to 35 days.
* Enterprise-grade security and compliance.

### Azure Database for PostgreSQL <a href="#azure-database-for-postgresql" id="azure-database-for-postgresql"></a>

![Azure Database for PostgreSQL logo](https://learn.microsoft.com/en-us/training/wwl-data-ai/explore-provision-deploy-relational-database-offerings-azure/media/postgresql-logo.png)If you prefer PostgreSQL, you can choose Azure Database for PostgreSQL to run a PaaS implementation of PostgreSQL in the Azure Cloud. This service provides the same availability, performance, scaling, security, and administrative benefits as the MySQL service.

Some features of on-premises PostgreSQL databases aren't available in Azure Database for PostgreSQL. These features are mostly concerned with the extensions that users can add to a database to perform specialized tasks, such as writing stored procedures in various programming languages (other than pgsql, which is available), and interacting directly with the operating system. A core set of the most frequently used extensions is supported, and the list of available extensions is under continuous review.

#### Azure Database for PostgreSQL Flexible Server <a href="#azure-database-for-postgresql-flexible-server" id="azure-database-for-postgresql-flexible-server"></a>

The flexible-server deployment option for PostgreSQL is a fully managed database service. It provides a high level of control and server configuration customizations and provides cost optimization controls.

#### Benefits of Azure Database for PostgreSQL <a href="#benefits-of-azure-database-for-postgresql" id="benefits-of-azure-database-for-postgresql"></a>

Azure Database for PostgreSQL is a highly available service. It contains built-in failure detection and failover mechanisms.

Users of PostgreSQL will be familiar with the **pgAdmin** tool, which you can use to manage and monitor a PostgreSQL database. You can continue to use this tool to connect to Azure Database for PostgreSQL. However, some server-focused functionality, such as performing server backup and restore, isn't available because the server is managed and maintained by Microsoft.

Azure Database for PostgreSQL records information about queries run against databases on the server and saves them in a database named _azure\_sys_. You query the _query\_store.qs\_view_ view to see this information, and use it to monitor the queries that users are running. This information can prove invaluable if you need to fine-tune the queries performed by your applications.
