When you start the build process for MySQL you will be shown the below screen, the question is what option would you select?
It really does depend; I don’t know your designs or requirements but they are quite different.
Microsoft position flexible server as a production-ready database service designed for more granular control and flexibility over database management functions and configuration settings. Single Server is a fully managed database service designed for minimal customization. The single server platform is designed to handle most of the database management functions best suited only for existing applications already leveraging single server. For all new developments or migrations, Flexible Server would be the recommended deployment option.
Whatever you select, don’t forget the benefits of PaaS such as:
You no longer need to manage the database engine, the operating system, or the hardware. Examples of items you can continue to administer include:
- Index tuning
- Query tuning
Some key highlights of single server approach:
Architecture is shown below
- Based on Windows OS (yes windows 😊)
- No availability zone support
- Can’t scale from the basic tier
- No IOPs scaling
- AAD is supported
- Stop server for 7 days
- Low-cost bursting not supported
- MS defender feature supported
- Less HA options than flexible
- 5 read replicas (via replication)
- Ability to restore to a different region
Architecture shown below, you can see more depth than the single server with the use of 3 availability zones, premium storage for the data files and Azure storage for backups. The separation of compute and data is common for both server types but how it is implemented is very different.
- Based on Linux
- Availability zone selection supported
- Busting compute is supported
- IOPs scaling possible
- No AAD auth integration
- Stop server for 30 days
- Same-zone and zone-redundant HA with hot standby possible
- 10 read replicas
- Can’t restore cross region
There is more but the above really stood out to me, please see https://docs.microsoft.com/en-us/azure/mysql/select-right-deployment-type for more details.