Not long ago, managing a database was often the hardest part of developing web applications. But today, as a developer, you’re almost spoiled for choice when it comes to tools and products designed to make database management easier.
You could even argue that managed and serverless databases have delivered one of the biggest productivity boosts of the web era. But with so much choice, how do you know which serverless or managed database is the best fit for your project?
In this comparison, we’ll put Amazon’s RDS for MySQL and TiDB Serverless side by side, looking at what they’re like to work with, what they do well, and where they leave room for improvement.
Before we take a look at both options, let’s quickly clear up what we mean by managed and serverless.
Managed vs Serverless
At first glance, the difference between a managed database and a serverless database might not be immediately clear. Both options reduce the amount of work you need to do, but there are some key differences.
Managed databases: In a managed database setup, the service provider handles day-to-day DevOps tasks, allowing you to focus on using the database rather than maintaining it. Despite this, you still need to make decisions about the infrastructure, such as choosing the right specifications for RAM, CPU, and storage based on your needs. Perhaps the main distinguishing feature of a managed database is that you need to predict, specify, and pay for the resources your database is likely to need under peak load.
Serverless databases: Serverless databases go a step further by completely abstracting the underlying infrastructure. They automatically adjust resources like RAM and CPU based on the demands of your database at any given time. This means you pay for what you use, rather than the underlying resources.
Amazon RDS for MySQL Overview
Amazon RDS for MySQL provides managed services for the open-source MySQL Community Edition database. Its purpose is to provide an alternative to running MySQL on Amazon EC2, taking care of the day-to-day management of your database so that you can focus on building your app. That means you don’t need to worry about administrative tasks, such as installing MySQL, making back-ups, and staying on top of security settings.
But RDS isn’t just about basic management. It also integrates with other AWS services, such as Cloudformation to help you scale out to multiple servers and AWS Cloudwatch for monitoring.
However, there’s still quite a bit that you need to take care of. For example, upgrading MySQL versions involves downtime and can be a manual process. You also need to pick an instance type for your database to run on. That means having an up-front idea of how much RAM and compute power your database is likely to need. You then pay a fixed hourly fee for that instance, along with additional charges for storage, data transfer, and multi-region replication.
TiDB Serverless Overview
TiDB Serverless is a MySQL-compatible serverless database built on the open-source TiDB database management system. It lets you focus entirely on your data and your app, while it takes care of all aspects of managing the database. So, there’s no need to consider how much RAM or CPU you should allocate to your database, because TiDB Serverless automatically assigns resources according to what it needs at any one moment.
And because TiDB Serverless is compatible with MySQL, rather than built using MySQL, it can offer functionality you wouldn’t otherwise get, such as vector search for AI applications.
Comparing Amazon RDS for MySQL and TiDB Serverless
Amazon RDS for MySQL and TiDB Serverless both promise to make it easier to build and run applications that rely on a MySQL-compatible database. But there are some significant differences in the approach that both products take.
To help you work out which is the best fit for your needs, let’s compare them across these key categories:
- Core database functionality: We’ll start with the basics. Both RDS for MySQL and TiDB Serverless offer MySQL compatibility, but we need to dig into the detail. For example, how do they handle queries, transactions, and indexing?
- Additional functionality, such as vector search support: Beyond traditional relational database tasks, what else do they bring to the table?
- Performance and scalability: Both platforms promise to operate well under loads and at all scales, but how they each achieve that differs.
- Resilience and reliability: Once your database is up and running, how does the platform ensure high uptimes and how do they cope when there’s a problem?
- Developer experience and usability: This is all about how easy and enjoyable these services are to use. How intuitive are the management consoles? What kind of community and support resources are available? A smooth developer experience can significantly reduce development time and frustration.
- Pricing and cost-effectiveness: Finally, we’ll talk about money. Comparing costs isn’t just about looking at the price tags; it’s about understanding how the pricing model aligns with how you plan to use the database.
Core Database Functionality
RDS for MySQL and TiDB Serverless both provide the essential features you would expect from a modern relational database. And because both are MySQL compatible, there’s a lot of similarity in what they offer.
RDS for MySQL | TiDB Serverless | |
MySQL compatibility | Offer various versions of MySQL Community Edition | Excellent compatibility with MySQL 5.7, with improvements where MySQL falls behind |
ACID transactions | Yes | Yes |
Indexing | Primary key Unique Full text Spatial Descending | Primary key Unique Secondary Composite Invisible |
Data types | All MySQL data types | All MySQL data types other than spatial |
Additional Functionality
Both RDS for MySQL and TiDB Serverless cover the core functionality you’d expect from a MySQL compatible database, but what else do they have to offer?
In the case of RDS for MySQL, the answer is very little, unless you count some of the integrations with AWS tools such as Cloudfront and Cloudwatch. And that’s not especially surprising, when you consider that RDS for MySQL is just a managed MySQL service.
TiDB Serverless, however, has been built from the ground up as its own product. That leaves plenty of room for innovation. When it comes to functionality, the biggest differences between RDS for MySQL and TiDB Serverless are the latter’s support for:
- Vector search: If you’re building AI-based applications, TiDB Serverless lets you store vector embeddings alongside your MySQL-compatible data.
- AI-assisted SQL query editor: Generate, debug, and optimize queries with AI support.
- Database branching: Just like your git-based development workflow, you can spin-off isolated branches of your database, allowing you to experiment with new features and troubleshoot issues easily and safely.
- REST APIs for your databases: Set-up REST APIs in front of your TiDB Serverless database for easy access.
Scalability
Scaling can be one of the more complex parts of managing a database. So, what do RDS for MySQL and TiDB Serverless have to offer when demand for your application changes?
These are the two main differences between the two:
- Complexity: With RDS for MySQL you need to consider the trade-offs between vertical and horizontal scaling and make plans for when to scale. TiDB Serverless, on the other hand, scales seamlessly to match your application’s workload needs.
- Weighting writes vs reads: RDS for MySQL relies on read-only replicas to scale horizontally, with writes hitting the main instance only. TiDB Serverless scales both writes and reads with no intervention from you.
Let’s get a summary of how they compare.
RDS for MySQL | TiDB Serverless | |
Automatic scaling | Only for storage | Yes, seamlessly and on demand |
Vertical scaling | Yes | |
Horizontal scaling | Yes, read-only with read replicas | |
Scale to zero | No | Yes |
Distributed transactions | No | Yes |
Reliability and Resilience
When you rely on your database for your application’s operation, you need to understand its availability characteristics. What happens in the event of a failure? Can you change the database schema without taking your app offline?
Just like scalability, RDS for MySQL and TiDB Serverless take radically different approaches to reliability and resilience. RDS for MySQL asks you to take a more active role in operations such as failover, whereas TiDB Serverless handles failover seamlessly.
Another big point of difference is in terms of schema changes and upgrades to the underlying software. Such changes can take RDS for MySQL offline for up to a few minutes, whereas TiDB Serverless continues operating throughout.
RDS for MySQL | TiDB Serverless | |
Multi-region | Yes, for read-only replicas | Yes, with TiDB Cloud |
Automatic failover | Yes, if you pay for multi-region deployment. Failover can take up to 35 seconds | Yes, with TiDB Cloud |
Automatic, non-blocking schema changes | No, although it is possible to reduce downtime to close to zero through a manual process using read-replicas | Yes |
Zero downtime upgrades | No. Depending on the additional tools you purchase, minor version upgrades require downtime from a few seconds to several minutes. Minor version upgrades can also be automated. Major version upgrades are a manual process that takes around ten minutes. | Yes |
Usability and Developer Experience
Taking care of the operational side of your database is just one aspect of letting you focus on building your product. The developer experience is critical too—it affects how quickly and effectively you can build and maintain your applications. A good database not only runs smoothly but also blends seamlessly into your development process.
MySQL compatibility means that both RDS for MySQL and TiDB Serverless give you a familiar starting point. But what else do they offer to make daily development more productive?
RDS for MySQL | TiDB Serverless | |
Free tier | Yes, with limits for one year. | Yes, with 25 GiB free storage. |
Open source | Based on open source MySQL | Based on open source TiDB |
Documentation and community | Comprehensive documentation with support via AWS resources. | Concise documentation complemented by active open-source community support. |
Drivers and ORMs | Supports MySQL drivers and ORMs. | Drivers for all major languages. Supports ORMs including Hibernate, Spring Data, jOOQ, and JDBC |
CLI | Compatible with MySQL CLI | Yes |
Pricing and Cost Effectiveness
Both of the databases we’re comparing take quite different approaches to pricing. And that’s a result of the difference between the managed and the serverless approach. Let’s look at how the differ:
- RDS for MySQL: You select the instance types based on your anticipated database needs. Each instance type is bundled with specific amounts of RAM, CPU, and storage options. Additionally, you are charged for data transferred out of your database. This setup essentially means you pay a base hourly fee for the instance—similar to renting a virtual machine—plus variable fees for storage and data transfer.
- TiDB Serverless: Instead of estimating the memory and processing power needed upfront, TiDB Serverless adopts a pay-as-you-go model. You are only charged based on actual usage, such as the amount of writes, reads, and CPU time spent on SQL query processing. There is no baseline instance price, meaning you pay only for what you use. Read more about how we built efficiency into TiDB Serverless.
Choosing between RDS for MySQL and TiDB Serverless
As one of the core parts of your application architecture, your choice of database can have long-running and far-reaching implications for your development throughput, your application’s uptime, and your ability to respond to changes in demand.
So, should you use Amazon RDS for MySQL or TiDB Serverless? The answer depends on what you value the most. Let’s take a quick recap of the relative merits of both options:
- Managed vs serverless: If you want to get your hands dirty with the day to day management, maintenance, and scaling of your database management system then you might prefer RDS for MySQL. However, if you’d rather spend your time solving end-user problems and leave the operational tasks to someone else, TiDB Serverless automates all aspects of database management, freeing you to focus on your application.
- MySQL compatibility: If you need 100% compatibility with MySQL, then RDS for MySQL might be the better option. However, if you want to break out beyond what MySQL can offer while still benefiting from extensive MySQL compatibility, chooseTiDB Serverless.
- Functionality: Both RDS for MySQL and TiDB Serverless give you a solid relational database. However, only TiDB Serverless offers an AI assistant to improve your queries and vector search.
- Scaling and reliability: There’s no comparison between RDS for MySQL and TiDB Serverless when it comes to scalability and reliability. TiDB Serverless has been architected from the ground up as a distributed, transactional database that will stay online even if individual nodes experience outages.
- Developer experience: Similarly, both databases offer the same basic MySQL experience. However, only TiDB Serverless gives you zero downtime schema upgrades and database branching.
- Cost effectiveness: It’s rare that any application has consistent database usage across a month. However, if your usage tends to be more typical with spikes in demand, TiDB Serverless’s usage-based pricing model could provide better value, as you only pay for the resources you actually use.
If you want reliability, scalability, and a NoOps experience, then TiDB Serverless could be the right database for you. You can get started with our free tier.
Spin up a Serverless database with 25GiB free resources.
TiDB Cloud Dedicated
A fully-managed cloud DBaaS for predictable workloads
TiDB Cloud Serverless
A fully-managed cloud DBaaS for auto-scaling workloads