Software developers may use a relational database management system (RDBMS) to create, read, update, and delete back-end data, and they can work with and change these systems with custom SQL statements. However, there are several RDBMSs to choose from, and each one is designed with particular use cases in mind and differs in features, pricing, and performance.
No matter which RDBMS you decide to work with, monitoring performance is an indispensable part of ensuring its functionality, reliability, and availability. In this guide, I’ll go through four of the major RDBMS types and suitable monitoring solutions: Amazon RDS, Amazon Aurora, MySQL, and SQL Server. Following an overview of each, I’ll compare their performance and pricing.
I’ll also look at software like SolarWinds® Database Performance Analyzer—which is designed to monitor the performance of your databases—to help you decide which relational database is the best for you.
Common Relational Database Types
- Amazon RDS: Amazon RDS is a managed relational database service capable of taking the stress out of the management tasks you might have to deal with otherwise. It’s easy to work with and provides more flexibility than managing your own servers. Instead of bundling CPU, memory, storage, and throughput like a typical server, for example, Amazon RDS allows you to scale each of these features independently and allocate them as necessary. It also includes tools to create backups, carry out software patching processes, and set up automatic failure detection and recovery.
- Amazon Aurora: The fundamental building block of Amazon RDS is called the “DB instance.” A DB instance is a database environment in the cloud, and it can contain multiple databases. Each DB instance runs a DB engine, and with Amazon RDS, you can choose between various DB engines, including Aurora.
You can access RDS and Aurora through Amazon Web Services (AWS), but they have slightly different intended uses. Essentially, the AWS Aurora database is a custom engine for Amazon RDS and is optimized for performance in the cloud.
Aurora is compatible with MySQL and PostgreSQL, and it’s intended to combine the availability and performance of traditional database engines with the cost-effectiveness and straightforwardness of open source. RDS can be used with various engines, while Aurora is a special engine developed for use with RDS.
- MySQL: MySQL is a widely used RDBMS. It comes in two forms: the open-source version (MySQL Community Server) and the proprietary version (MySQL Enterprise Edition), which is owned by Oracle. Anyone can download the open-source MySQL software and use it for free. It’s highly suitable for accessing databases online and was developed to handle large databases much faster than other solutions developed around the same time. It’s most commonly used for web applications and online publishing.
- SQL Server: SQL Server is an RDBMS developed by Microsoft. For a long time, it was only available on Windows, but it’s now available for Linux. Depending on your needs and budget, you can choose between several editions of SQL Server, including the Enterprise, Standard, and Developer editions.
Performance and Feature Comparison
Amazon Aurora vs. RDS
The main benefits of Amazon RDS are its preconfigured parameters, automatic software patching capabilities, and robust tools for monitoring and metrics.
As a custom engine for RDS, Amazon Aurora has additional features to make it faster and more modern. Aurora has high throughput, storage auto-scaling, and a self-healing, fault-tolerant storage system. It also provides point-in-time recovery and continuous backup, and it offers replication across three availability zones to keep your data secure.
The performance of Aurora and RDS depends on the engine you use with RDS, as some are optimized for availability instead of speed or to fit in with existing code.
Aurora vs. MySQL and SQL Server
Aurora is intended for performance with cloud servers, while MySQL is designed to run on physical machines and may not be optimized for virtual machine performance. As a result, Amazon Aurora and MySQL performance will be affected by the nature of the machines the system is running on.
Amazon asserts Aurora is five times faster than standard MySQL databases and three times faster than PostgreSQL databases when used in the cloud. Comparing Amazon Aurora vs. SQL Server yields similar findings, since SQL Server—like MySQL—is designed to be used on-premises.
MySQL vs. SQL Server
Prior to 2016, MySQL and SQL Server were differentiated by the number of platforms they could be used on: MySQL was available on multiple platforms, while SQL Server could only be used on Windows. Today, SQL Server is available on Linux as well. Because these RDBMSs are designed to be compatible with multiple platforms, they’re versatile and flexible, whereas Amazon Aurora is only designed for use with RDS. This means SQL Server and MySQL developers sometimes make performance sacrifices for the sake of compatibility.
MySQL is open-source, which means you can modify the source code however you like. Furthermore, MySQL has been used for a long time, so a lot of support is available, including abundant resources for developer use.
MySQL supports multiple storage engines, including InnoDB, CSV, and NDB. If you use the InnoDB engine with MySQL, it won’t be as fast as the other engines, as InnoDB was designed for availability instead of speed. MySQL is written in C and C++ and can be used on Windows, Mac, Unix, and Linux. For security purposes, MySQL uses a system of access privileges and encrypted passwords, which enables verification to be performed in a host-based system.
Unlike MySQL, SQL Server only has one storage engine, which makes it a bit less flexible.
One of the differences between MySQL and SQL Server concerns the languages they support. While they both support C++, Delphi, Go, Java, PHP, Python, R, Ruby, and Visual Basic, MySQL also supports Eiffel, Haskell, Perl, Scheme, and Tcl. This broader programming language support contributes to the popularity of MySQL.
Another difference has to do with filtering capability. MySQL requires you to filter out users, tables, or rows per individual database, which means developers must often run multiple queries. With SQL Server, you can use row-based filtering, which means you can filter multiple rows without needing to consider the number of databases.
Finally, SQL Server includes data performance analytics and reporting tools, such as SQL Server Reporting Services, which can be downloaded for free. MySQL offers similar tools, like Crystal Reports and Actuate BIRT. You can also use third-party tools to monitor performance, as we’ll discuss below.
Relational Database Pricing Comparison
The different instances offered by RDS are priced depending on the features you want, the region you live in, where you transfer data, and which version or edition of the instance you’re using. The pricing for Aurora, listed below, is similar to the pricing structure of all the other RDS engines.
Amazon Aurora is a pay-as-you-go service with no up-front fees. It has two different pricing structures depending on whether you use the MySQL-compatible edition or the PostgreSQL-compatible edition. For both editions, two types of instances are available: standard instances and memory-optimized instances.
The storage consumed by your database is billed monthly on a per-GB basis. I/Os are also billed per month in increments of one million requests. You can also pay for the Aurora Global Database, which costs approximately $0.2 per million replicated write I/Os. This feature provides low-latency global reads and disaster recovery. With the Aurora Global Database, instances, storage, data transfer, backup, and backtracking functions are all charged at standard rates, and the backup fee is charged monthly on a per-GB basis. The fees associated with Aurora vary depending on where you’re located.
With the MySQL-compatible version of Aurora, users can opt to pay separately for the Backtrack feature. This allows you to quickly shift back to a previous Aurora database without needing to restore data from a backup. The Backtrack feature is priced per one million change records.
All data transferred into the Aurora database is free. The cost of transfers out of the Aurora database to the internet depends on the volume of the transfer, and the cost of transfers from Aurora to other regions or to Amazon CloudFront depends on the regions where you’re transferring them.
Aurora pricing vs. RDS pricing will also depend on the engine you use for RDS, the region you’re in, the features you choose, and the way you transfer data while using your databases. Generally, Aurora is a bit more expensive than the other RDS database engines.
The open-source version of MySQL is completely free. You can pay for the Enterprise version for additional support and features on a subscription basis: it costs $60,000 for a three-year subscription and support or $5,000 per server per year.
SQL Server offers a range of editions. Among these, the Enterprise edition provides mission-critical performance for especially demanding database requirements as well as business intelligence and analysis. It’s licensed on a per-core basis, and it costs $14,256 for the open, no-level price. The Standard edition is much cheaper at $3,717, and it’s more suited to noncritical workloads when it comes to data management and business intelligence. The Developer version of SQL Server is free.
What Is the Best Relational Database?
Each of these databases has pros and cons. No matter which database you choose, its performance will depend on the platform you run it on and the engine you use with it. Looking at the InnoDB engine for MySQL (designed for availability) alongside Aurora for RDS (designed for speed), for example, isn’t a fair comparison.
In all cases, you’ll want to monitor and analyze performance in terms of speed and availability, so I recommend using a tool to monitor the relational databases covered here, as it helps facilitate easy troubleshooting and seamless management across a database environment.
How to Monitor Relational Database Performance
Monitoring is an essential part of maintaining the reliability and performance of your database management system. You should ensure you’re continuously collecting data from your database solution, so you can debug problems when they arise. It’s also important to have a clear monitoring plan in place so you can keep your RDBMS performing up to standard.
Think carefully about the resources you want to monitor, how much detail you want, and how frequently you’ll conduct a system check.
As part of your monitoring plan, make sure you have a clear pathway of escalation, so your business colleagues and clients know who to talk to if an issue arises. Additionally, ensure appropriate alerts are set up so the relevant people are notified if something goes wrong.
A good monitoring tool is key to maintaining database health. If you’re monitoring multiple databases, you’ll want to look for a monitoring tool capable of reporting on all of them, so you don’t have to switch between programs to get an overall picture of performance.
SolarWinds Database Performance Monitor (DPM) is a cloud-based database health monitoring solution. DPM is designed to monitor a database’s health for factors such as latency, error rate, CPU utilization, network and disk throughput, and more. You also get to see before and after comparisons, which can help you understand the effects of changes.
If you’re interested in using DPM or if you’re curious about what else it can do, you can request a demo here.
For a high-quality database performance analyzer you can use with RDS, Aurora, MySQL, and SQL Server, I recommend SolarWinds Database Performance Analyzer (DPA).
DPA is designed for performance monitoring, analysis, and tuning, and it can help give you a clear performance picture and facilitate troubleshooting. It also works with historical data to help you see where performance is headed and how your system is trending. It uses machine learning processes to detect anomalies, so you’re alerted to database performance or security issues as soon as something unusual occurs. With DPA, you can also analyze your RDS, Aurora, MySQL, and SQL Server instances and compare performance metrics.
Once your analyzer is set up, test each database under normal performance conditions, at various times, and under different loads. Consider storing historical monitoring data for a set time so you can get a decent snapshot of how one database is performing before comparing it to the others.
If you’re interested in using DPA or if you’re curious about what else it can do, you can request an interactive demo here.
SolarWinds DPM vs. DPA
Database Performance Monitor and Database Performance Analyzer sound similar, but there are several key differences between them. As an open-source database performance monitoring solution for cloud and on-premises databases, Database Performance Monitor is designed to help you dive deeper into performance. With features like adaptive fault detection, DPM can indicate when and where a system is failing with one-second granularity. DPM can also show you where to investigate to find the root cause of an issue in an easily understandable format, so your team can make changes and avoid future problems.
Database Performance Analyzer, on the other hand, can collect data and is built to help you better understand patterns and details. SolarWinds DPA provides cross-platform support for cloud and on-premises databases. DPA also features anomaly detection, which is powered by machine learning and gets smarter over time to help you more easily identify the bottlenecks slowing down your applications.
SolarWinds DPM and DPA also support different database platforms. So, do you need DPA, or do you need DPM? Well, it depends on your business. To understand your needs, you should check out the free trials offered by these leading database performance tools.